{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ![](https://julyedu-img-public.oss-cn-beijing.aliyuncs.com/Public/img/index/logo.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Pandas教程\n",
    "### 2018七月在线 机器学习集训营第六期 [@Julyedu.com七月在线 ](http://www.julyedu.com)\n",
    "by 褚则伟 zeweichu@gmail.com"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 目录\n",
    "- Groupby和Aggregate\n",
    "- 表格的匹配与拼接\n",
    "- bikes项目"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Groupby and Aggregate\n",
    "### 2018七月在线 机器学习集训营第六期 julyedu.com"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "举个栗子，假设我们现在有一张公司每个员工的收入流水。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    Name  Year  Salary  Bonus\n",
      "0   July  2016   10000   3000\n",
      "1  Zewei  2016    2000   1000\n",
      "2  Zewei  2016    4000   1000\n",
      "3    Han  2016    5000   1200\n",
      "4   July  2017   18000   4000\n",
      "5   July  2017   25000   2300\n",
      "6  Zewei  2017    3000    500\n",
      "7   July  2017    4000   1000\n"
     ]
    }
   ],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "%matplotlib inline\n",
    "salaries = pd.DataFrame({\n",
    "    'Name': ['July', 'Zewei', 'Zewei', 'Han', 'July', 'July', 'Zewei', 'July'],\n",
    "    'Year': [2016,2016,2016,2016,2017,2017,2017,2017],\n",
    "    'Salary': [10000,2000,4000,5000,18000,25000,3000,4000],\n",
    "    'Bonus': [3000,1000,1000,1200,4000,2300,500,1000]\n",
    "})\n",
    "print(salaries)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接下来我给大家演示一下什么叫做Group By"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<pandas.core.groupby.groupby.DataFrameGroupBy object at 0x106a8c908>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "group_by_name = salaries.groupby('Name')\n",
    "group_by_name"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "groupby构造了一个GroupBy object"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### groupby之后一般要做一些[aggregate](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.aggregate.html)操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Year</th>\n",
       "      <th>Salary</th>\n",
       "      <th>Bonus</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Name</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Han</th>\n",
       "      <td>2016</td>\n",
       "      <td>5000</td>\n",
       "      <td>1200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>July</th>\n",
       "      <td>8067</td>\n",
       "      <td>57000</td>\n",
       "      <td>10300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Zewei</th>\n",
       "      <td>6049</td>\n",
       "      <td>9000</td>\n",
       "      <td>2500</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Year  Salary  Bonus\n",
       "Name                      \n",
       "Han    2016    5000   1200\n",
       "July   8067   57000  10300\n",
       "Zewei  6049    9000   2500"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "group_by_name.sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "默认会排序，也可以选择不排序"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Year</th>\n",
       "      <th>Salary</th>\n",
       "      <th>Bonus</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Name</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>July</th>\n",
       "      <td>8067</td>\n",
       "      <td>57000</td>\n",
       "      <td>10300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Zewei</th>\n",
       "      <td>6049</td>\n",
       "      <td>9000</td>\n",
       "      <td>2500</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Han</th>\n",
       "      <td>2016</td>\n",
       "      <td>5000</td>\n",
       "      <td>1200</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Year  Salary  Bonus\n",
       "Name                      \n",
       "July   8067   57000  10300\n",
       "Zewei  6049    9000   2500\n",
       "Han    2016    5000   1200"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "salaries.groupby('Name', sort=False).sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "也可以这么写"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Year</th>\n",
       "      <th>Salary</th>\n",
       "      <th>Bonus</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Name</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Han</th>\n",
       "      <td>2016</td>\n",
       "      <td>5000</td>\n",
       "      <td>1200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>July</th>\n",
       "      <td>8067</td>\n",
       "      <td>57000</td>\n",
       "      <td>10300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Zewei</th>\n",
       "      <td>6049</td>\n",
       "      <td>9000</td>\n",
       "      <td>2500</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Year  Salary  Bonus\n",
       "Name                      \n",
       "Han    2016    5000   1200\n",
       "July   8067   57000  10300\n",
       "Zewei  6049    9000   2500"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "group_by_name.aggregate(sum)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "group by的attributes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'Han': Int64Index([3], dtype='int64'), 'July': Int64Index([0, 4, 5, 7], dtype='int64'), 'Zewei': Int64Index([1, 2, 6], dtype='int64')}\n",
      "3\n"
     ]
    }
   ],
   "source": [
    "print(group_by_name.groups)\n",
    "print(len(group_by_name))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以用多个columns做group by"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>Salary</th>\n",
       "      <th>Bonus</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Name</th>\n",
       "      <th>Year</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Han</th>\n",
       "      <th>2016</th>\n",
       "      <td>5000</td>\n",
       "      <td>1200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">July</th>\n",
       "      <th>2016</th>\n",
       "      <td>10000</td>\n",
       "      <td>3000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017</th>\n",
       "      <td>47000</td>\n",
       "      <td>7300</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">Zewei</th>\n",
       "      <th>2016</th>\n",
       "      <td>6000</td>\n",
       "      <td>2000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017</th>\n",
       "      <td>3000</td>\n",
       "      <td>500</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Salary  Bonus\n",
       "Name  Year               \n",
       "Han   2016    5000   1200\n",
       "July  2016   10000   3000\n",
       "      2017   47000   7300\n",
       "Zewei 2016    6000   2000\n",
       "      2017    3000    500"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "group_by_name_year = salaries.groupby(['Name', 'Year'])\n",
    "group_by_name_year.sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "除了sum之外，我们再来尝试一下size,mean,median "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Name   Year\n",
       "Han    2016    1\n",
       "July   2016    1\n",
       "       2017    3\n",
       "Zewei  2016    2\n",
       "       2017    1\n",
       "dtype: int64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "group_by_name_year.size()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Year</th>\n",
       "      <th>Salary</th>\n",
       "      <th>Bonus</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Name</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Han</th>\n",
       "      <td>2016.000000</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>1200.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>July</th>\n",
       "      <td>2016.750000</td>\n",
       "      <td>14250.0</td>\n",
       "      <td>2575.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Zewei</th>\n",
       "      <td>2016.333333</td>\n",
       "      <td>3000.0</td>\n",
       "      <td>833.333333</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              Year   Salary        Bonus\n",
       "Name                                    \n",
       "Han    2016.000000   5000.0  1200.000000\n",
       "July   2016.750000  14250.0  2575.000000\n",
       "Zewei  2016.333333   3000.0   833.333333"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "group_by_name.mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Year</th>\n",
       "      <th>Salary</th>\n",
       "      <th>Bonus</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Name</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Han</th>\n",
       "      <td>2016</td>\n",
       "      <td>5000</td>\n",
       "      <td>1200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>July</th>\n",
       "      <td>2017</td>\n",
       "      <td>14000</td>\n",
       "      <td>2650</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Zewei</th>\n",
       "      <td>2016</td>\n",
       "      <td>3000</td>\n",
       "      <td>1000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Year  Salary  Bonus\n",
       "Name                      \n",
       "Han    2016    5000   1200\n",
       "July   2017   14000   2650\n",
       "Zewei  2016    3000   1000"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "group_by_name.median()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"8\" halign=\"left\">Bonus</th>\n",
       "      <th colspan=\"5\" halign=\"left\">Salary</th>\n",
       "      <th colspan=\"8\" halign=\"left\">Year</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>min</th>\n",
       "      <th>25%</th>\n",
       "      <th>50%</th>\n",
       "      <th>75%</th>\n",
       "      <th>max</th>\n",
       "      <th>count</th>\n",
       "      <th>mean</th>\n",
       "      <th>...</th>\n",
       "      <th>75%</th>\n",
       "      <th>max</th>\n",
       "      <th>count</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>min</th>\n",
       "      <th>25%</th>\n",
       "      <th>50%</th>\n",
       "      <th>75%</th>\n",
       "      <th>max</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Name</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Han</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1200.000000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1200.0</td>\n",
       "      <td>1200.0</td>\n",
       "      <td>1200.0</td>\n",
       "      <td>1200.0</td>\n",
       "      <td>1200.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>...</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>2016.000000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2016.0</td>\n",
       "      <td>2016.00</td>\n",
       "      <td>2016.0</td>\n",
       "      <td>2016.0</td>\n",
       "      <td>2016.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>July</th>\n",
       "      <td>4.0</td>\n",
       "      <td>2575.000000</td>\n",
       "      <td>1260.621540</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>1975.0</td>\n",
       "      <td>2650.0</td>\n",
       "      <td>3250.0</td>\n",
       "      <td>4000.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>14250.0</td>\n",
       "      <td>...</td>\n",
       "      <td>19750.0</td>\n",
       "      <td>25000.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>2016.750000</td>\n",
       "      <td>0.50000</td>\n",
       "      <td>2016.0</td>\n",
       "      <td>2016.75</td>\n",
       "      <td>2017.0</td>\n",
       "      <td>2017.0</td>\n",
       "      <td>2017.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Zewei</th>\n",
       "      <td>3.0</td>\n",
       "      <td>833.333333</td>\n",
       "      <td>288.675135</td>\n",
       "      <td>500.0</td>\n",
       "      <td>750.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>3000.0</td>\n",
       "      <td>...</td>\n",
       "      <td>3500.0</td>\n",
       "      <td>4000.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>2016.333333</td>\n",
       "      <td>0.57735</td>\n",
       "      <td>2016.0</td>\n",
       "      <td>2016.00</td>\n",
       "      <td>2016.0</td>\n",
       "      <td>2016.5</td>\n",
       "      <td>2017.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>3 rows × 24 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "      Bonus                                                                    \\\n",
       "      count         mean          std     min     25%     50%     75%     max   \n",
       "Name                                                                            \n",
       "Han     1.0  1200.000000          NaN  1200.0  1200.0  1200.0  1200.0  1200.0   \n",
       "July    4.0  2575.000000  1260.621540  1000.0  1975.0  2650.0  3250.0  4000.0   \n",
       "Zewei   3.0   833.333333   288.675135   500.0   750.0  1000.0  1000.0  1000.0   \n",
       "\n",
       "      Salary            ...                      Year                        \\\n",
       "       count     mean   ...        75%      max count         mean      std   \n",
       "Name                    ...                                                   \n",
       "Han      1.0   5000.0   ...     5000.0   5000.0   1.0  2016.000000      NaN   \n",
       "July     4.0  14250.0   ...    19750.0  25000.0   4.0  2016.750000  0.50000   \n",
       "Zewei    3.0   3000.0   ...     3500.0   4000.0   3.0  2016.333333  0.57735   \n",
       "\n",
       "                                                \n",
       "          min      25%     50%     75%     max  \n",
       "Name                                            \n",
       "Han    2016.0  2016.00  2016.0  2016.0  2016.0  \n",
       "July   2016.0  2016.75  2017.0  2017.0  2017.0  \n",
       "Zewei  2016.0  2016.00  2016.0  2016.5  2017.0  \n",
       "\n",
       "[3 rows x 24 columns]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "group_by_name.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### iterate GroupBy object"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Han\n",
      "  Name  Year  Salary  Bonus\n",
      "3  Han  2016    5000   1200\n",
      "July\n",
      "   Name  Year  Salary  Bonus\n",
      "0  July  2016   10000   3000\n",
      "4  July  2017   18000   4000\n",
      "5  July  2017   25000   2300\n",
      "7  July  2017    4000   1000\n",
      "Zewei\n",
      "    Name  Year  Salary  Bonus\n",
      "1  Zewei  2016    2000   1000\n",
      "2  Zewei  2016    4000   1000\n",
      "6  Zewei  2017    3000    500\n"
     ]
    }
   ],
   "source": [
    "for name, group in group_by_name:\n",
    "    print(name)\n",
    "    print(group)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "选择一个group"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    Name  Year  Salary  Bonus\n",
      "1  Zewei  2016    2000   1000\n",
      "2  Zewei  2016    4000   1000\n",
      "6  Zewei  2017    3000    500\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "pandas.core.frame.DataFrame"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "print(group_by_name.get_group(\"Zewei\"))\n",
    "type(group_by_name.get_group(\"Zewei\"))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "agg是aggregate的alias，可以替代使用"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"3\" halign=\"left\">Year</th>\n",
       "      <th colspan=\"3\" halign=\"left\">Salary</th>\n",
       "      <th colspan=\"3\" halign=\"left\">Bonus</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>sum</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>sum</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>sum</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Name</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Han</th>\n",
       "      <td>2016</td>\n",
       "      <td>2016.000000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>5000</td>\n",
       "      <td>5000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1200</td>\n",
       "      <td>1200.000000</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>July</th>\n",
       "      <td>8067</td>\n",
       "      <td>2016.750000</td>\n",
       "      <td>0.50000</td>\n",
       "      <td>57000</td>\n",
       "      <td>14250</td>\n",
       "      <td>9178.779875</td>\n",
       "      <td>10300</td>\n",
       "      <td>2575.000000</td>\n",
       "      <td>1260.621540</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Zewei</th>\n",
       "      <td>6049</td>\n",
       "      <td>2016.333333</td>\n",
       "      <td>0.57735</td>\n",
       "      <td>9000</td>\n",
       "      <td>3000</td>\n",
       "      <td>1000.000000</td>\n",
       "      <td>2500</td>\n",
       "      <td>833.333333</td>\n",
       "      <td>288.675135</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Year                       Salary                      Bonus  \\\n",
       "        sum         mean      std    sum   mean          std    sum   \n",
       "Name                                                                  \n",
       "Han    2016  2016.000000      NaN   5000   5000          NaN   1200   \n",
       "July   8067  2016.750000  0.50000  57000  14250  9178.779875  10300   \n",
       "Zewei  6049  2016.333333  0.57735   9000   3000  1000.000000   2500   \n",
       "\n",
       "                                 \n",
       "              mean          std  \n",
       "Name                             \n",
       "Han    1200.000000          NaN  \n",
       "July   2575.000000  1260.621540  \n",
       "Zewei   833.333333   288.675135  "
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "group_by_name.agg([np.sum, np.mean, np.std])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对每一列可以采用不同的aggregate操作"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Bonus</th>\n",
       "      <th>Salary</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Name</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Han</th>\n",
       "      <td>1200</td>\n",
       "      <td>5000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>July</th>\n",
       "      <td>10300</td>\n",
       "      <td>57000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Zewei</th>\n",
       "      <td>2500</td>\n",
       "      <td>9000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Bonus  Salary\n",
       "Name                \n",
       "Han     1200    5000\n",
       "July   10300   57000\n",
       "Zewei   2500    9000"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "group_by_name.agg({\"Bonus\": np.sum, \"Salary\": np.sum})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Bonus</th>\n",
       "      <th>Salary</th>\n",
       "      <th>Year</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Name</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Han</th>\n",
       "      <td>1200</td>\n",
       "      <td>5000</td>\n",
       "      <td>2016</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>July</th>\n",
       "      <td>10300</td>\n",
       "      <td>57000</td>\n",
       "      <td>2016</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Zewei</th>\n",
       "      <td>2500</td>\n",
       "      <td>9000</td>\n",
       "      <td>2016</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Bonus  Salary  Year\n",
       "Name                      \n",
       "Han     1200    5000  2016\n",
       "July   10300   57000  2016\n",
       "Zewei   2500    9000  2016"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "group_by_name.agg({\"Bonus\": np.sum, \"Salary\": np.sum, \"Year\": (lambda x: list(x)[0])})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th colspan=\"8\" halign=\"left\">Bonus</th>\n",
       "      <th colspan=\"8\" halign=\"left\">Salary</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>min</th>\n",
       "      <th>25%</th>\n",
       "      <th>50%</th>\n",
       "      <th>75%</th>\n",
       "      <th>max</th>\n",
       "      <th>count</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>min</th>\n",
       "      <th>25%</th>\n",
       "      <th>50%</th>\n",
       "      <th>75%</th>\n",
       "      <th>max</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Name</th>\n",
       "      <th>Year</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Han</th>\n",
       "      <th>2016</th>\n",
       "      <td>1.0</td>\n",
       "      <td>1200.000000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1200.0</td>\n",
       "      <td>1200.0</td>\n",
       "      <td>1200.0</td>\n",
       "      <td>1200.0</td>\n",
       "      <td>1200.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>5000.000000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>5000.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">July</th>\n",
       "      <th>2016</th>\n",
       "      <td>1.0</td>\n",
       "      <td>3000.000000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3000.0</td>\n",
       "      <td>3000.0</td>\n",
       "      <td>3000.0</td>\n",
       "      <td>3000.0</td>\n",
       "      <td>3000.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>10000.000000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>10000.0</td>\n",
       "      <td>10000.0</td>\n",
       "      <td>10000.0</td>\n",
       "      <td>10000.0</td>\n",
       "      <td>10000.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017</th>\n",
       "      <td>3.0</td>\n",
       "      <td>2433.333333</td>\n",
       "      <td>1504.43788</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>1650.0</td>\n",
       "      <td>2300.0</td>\n",
       "      <td>3150.0</td>\n",
       "      <td>4000.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>15666.666667</td>\n",
       "      <td>10692.676622</td>\n",
       "      <td>4000.0</td>\n",
       "      <td>11000.0</td>\n",
       "      <td>18000.0</td>\n",
       "      <td>21500.0</td>\n",
       "      <td>25000.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th rowspan=\"2\" valign=\"top\">Zewei</th>\n",
       "      <th>2016</th>\n",
       "      <td>2.0</td>\n",
       "      <td>1000.000000</td>\n",
       "      <td>0.00000</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>2.0</td>\n",
       "      <td>3000.000000</td>\n",
       "      <td>1414.213562</td>\n",
       "      <td>2000.0</td>\n",
       "      <td>2500.0</td>\n",
       "      <td>3000.0</td>\n",
       "      <td>3500.0</td>\n",
       "      <td>4000.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017</th>\n",
       "      <td>1.0</td>\n",
       "      <td>500.000000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>500.0</td>\n",
       "      <td>500.0</td>\n",
       "      <td>500.0</td>\n",
       "      <td>500.0</td>\n",
       "      <td>500.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3000.000000</td>\n",
       "      <td>NaN</td>\n",
       "      <td>3000.0</td>\n",
       "      <td>3000.0</td>\n",
       "      <td>3000.0</td>\n",
       "      <td>3000.0</td>\n",
       "      <td>3000.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           Bonus                                                           \\\n",
       "           count         mean         std     min     25%     50%     75%   \n",
       "Name  Year                                                                  \n",
       "Han   2016   1.0  1200.000000         NaN  1200.0  1200.0  1200.0  1200.0   \n",
       "July  2016   1.0  3000.000000         NaN  3000.0  3000.0  3000.0  3000.0   \n",
       "      2017   3.0  2433.333333  1504.43788  1000.0  1650.0  2300.0  3150.0   \n",
       "Zewei 2016   2.0  1000.000000     0.00000  1000.0  1000.0  1000.0  1000.0   \n",
       "      2017   1.0   500.000000         NaN   500.0   500.0   500.0   500.0   \n",
       "\n",
       "                   Salary                                                \\\n",
       "               max  count          mean           std      min      25%   \n",
       "Name  Year                                                                \n",
       "Han   2016  1200.0    1.0   5000.000000           NaN   5000.0   5000.0   \n",
       "July  2016  3000.0    1.0  10000.000000           NaN  10000.0  10000.0   \n",
       "      2017  4000.0    3.0  15666.666667  10692.676622   4000.0  11000.0   \n",
       "Zewei 2016  1000.0    2.0   3000.000000   1414.213562   2000.0   2500.0   \n",
       "      2017   500.0    1.0   3000.000000           NaN   3000.0   3000.0   \n",
       "\n",
       "                                       \n",
       "                50%      75%      max  \n",
       "Name  Year                             \n",
       "Han   2016   5000.0   5000.0   5000.0  \n",
       "July  2016  10000.0  10000.0  10000.0  \n",
       "      2017  18000.0  21500.0  25000.0  \n",
       "Zewei 2016   3000.0   3500.0   4000.0  \n",
       "      2017   3000.0   3000.0   3000.0  "
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "group_by_name_year.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### [transform](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.transform.html)\n",
    "transform会把group中的每一个record都按照同样的规则转化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Adj Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1999-01-22</th>\n",
       "      <td>1.750000</td>\n",
       "      <td>1.953125</td>\n",
       "      <td>1.552083</td>\n",
       "      <td>1.640625</td>\n",
       "      <td>1.523430</td>\n",
       "      <td>67867200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-25</th>\n",
       "      <td>1.770833</td>\n",
       "      <td>1.833333</td>\n",
       "      <td>1.640625</td>\n",
       "      <td>1.812500</td>\n",
       "      <td>1.683028</td>\n",
       "      <td>12762000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-26</th>\n",
       "      <td>1.833333</td>\n",
       "      <td>1.869792</td>\n",
       "      <td>1.645833</td>\n",
       "      <td>1.671875</td>\n",
       "      <td>1.552448</td>\n",
       "      <td>8580000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-27</th>\n",
       "      <td>1.677083</td>\n",
       "      <td>1.718750</td>\n",
       "      <td>1.583333</td>\n",
       "      <td>1.666667</td>\n",
       "      <td>1.547611</td>\n",
       "      <td>6109200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-28</th>\n",
       "      <td>1.666667</td>\n",
       "      <td>1.677083</td>\n",
       "      <td>1.651042</td>\n",
       "      <td>1.661458</td>\n",
       "      <td>1.542776</td>\n",
       "      <td>5688000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                Open      High       Low     Close  Adj Close    Volume\n",
       "Date                                                                   \n",
       "1999-01-22  1.750000  1.953125  1.552083  1.640625   1.523430  67867200\n",
       "1999-01-25  1.770833  1.833333  1.640625  1.812500   1.683028  12762000\n",
       "1999-01-26  1.833333  1.869792  1.645833  1.671875   1.552448   8580000\n",
       "1999-01-27  1.677083  1.718750  1.583333  1.666667   1.547611   6109200\n",
       "1999-01-28  1.666667  1.677083  1.651042  1.661458   1.542776   5688000"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nvda = pd.read_csv(\"data/NVDA.csv\", index_col=0, parse_dates=[0])\n",
    "nvda.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Adj Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1999</th>\n",
       "      <td>1.950782</td>\n",
       "      <td>2.007317</td>\n",
       "      <td>1.883559</td>\n",
       "      <td>1.947230</td>\n",
       "      <td>1.808134</td>\n",
       "      <td>6.433220e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2000</th>\n",
       "      <td>8.781084</td>\n",
       "      <td>9.222697</td>\n",
       "      <td>8.360522</td>\n",
       "      <td>8.778826</td>\n",
       "      <td>8.151729</td>\n",
       "      <td>1.104182e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2001</th>\n",
       "      <td>13.091254</td>\n",
       "      <td>13.600750</td>\n",
       "      <td>12.680548</td>\n",
       "      <td>13.181552</td>\n",
       "      <td>12.239956</td>\n",
       "      <td>2.782387e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2002</th>\n",
       "      <td>9.690344</td>\n",
       "      <td>9.955093</td>\n",
       "      <td>9.344391</td>\n",
       "      <td>9.614749</td>\n",
       "      <td>8.927940</td>\n",
       "      <td>3.168655e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2003</th>\n",
       "      <td>5.902434</td>\n",
       "      <td>6.042659</td>\n",
       "      <td>5.764960</td>\n",
       "      <td>5.900344</td>\n",
       "      <td>5.478865</td>\n",
       "      <td>2.430220e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2004</th>\n",
       "      <td>6.484735</td>\n",
       "      <td>6.608810</td>\n",
       "      <td>6.353558</td>\n",
       "      <td>6.465913</td>\n",
       "      <td>6.004034</td>\n",
       "      <td>1.706331e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2005</th>\n",
       "      <td>9.512381</td>\n",
       "      <td>9.659656</td>\n",
       "      <td>9.353175</td>\n",
       "      <td>9.513823</td>\n",
       "      <td>8.834223</td>\n",
       "      <td>1.542825e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2006</th>\n",
       "      <td>18.057902</td>\n",
       "      <td>18.425126</td>\n",
       "      <td>17.720279</td>\n",
       "      <td>18.095963</td>\n",
       "      <td>16.803316</td>\n",
       "      <td>1.534446e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2007</th>\n",
       "      <td>27.762045</td>\n",
       "      <td>28.251673</td>\n",
       "      <td>27.206056</td>\n",
       "      <td>27.724542</td>\n",
       "      <td>25.744098</td>\n",
       "      <td>1.514562e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2008</th>\n",
       "      <td>16.004308</td>\n",
       "      <td>16.426245</td>\n",
       "      <td>15.521462</td>\n",
       "      <td>15.945613</td>\n",
       "      <td>14.806572</td>\n",
       "      <td>2.022721e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2009</th>\n",
       "      <td>11.825119</td>\n",
       "      <td>12.114762</td>\n",
       "      <td>11.565952</td>\n",
       "      <td>11.850873</td>\n",
       "      <td>11.004331</td>\n",
       "      <td>1.919821e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2010</th>\n",
       "      <td>13.576349</td>\n",
       "      <td>13.802659</td>\n",
       "      <td>13.318532</td>\n",
       "      <td>13.563175</td>\n",
       "      <td>12.594318</td>\n",
       "      <td>1.853295e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2011</th>\n",
       "      <td>16.912540</td>\n",
       "      <td>17.267540</td>\n",
       "      <td>16.512143</td>\n",
       "      <td>16.887540</td>\n",
       "      <td>15.681214</td>\n",
       "      <td>2.289352e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012</th>\n",
       "      <td>13.526200</td>\n",
       "      <td>13.717400</td>\n",
       "      <td>13.319800</td>\n",
       "      <td>13.507880</td>\n",
       "      <td>12.551166</td>\n",
       "      <td>1.207757e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2013</th>\n",
       "      <td>14.173571</td>\n",
       "      <td>14.329802</td>\n",
       "      <td>14.035278</td>\n",
       "      <td>14.189127</td>\n",
       "      <td>13.412278</td>\n",
       "      <td>8.843986e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2014</th>\n",
       "      <td>18.543056</td>\n",
       "      <td>18.745476</td>\n",
       "      <td>18.348214</td>\n",
       "      <td>18.547064</td>\n",
       "      <td>17.875053</td>\n",
       "      <td>7.098902e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2015</th>\n",
       "      <td>23.680595</td>\n",
       "      <td>23.979524</td>\n",
       "      <td>23.411071</td>\n",
       "      <td>23.718254</td>\n",
       "      <td>23.262283</td>\n",
       "      <td>7.756520e+06</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016</th>\n",
       "      <td>53.630833</td>\n",
       "      <td>54.415397</td>\n",
       "      <td>52.895119</td>\n",
       "      <td>53.761190</td>\n",
       "      <td>53.475737</td>\n",
       "      <td>1.107062e+07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2017</th>\n",
       "      <td>120.481305</td>\n",
       "      <td>122.300725</td>\n",
       "      <td>118.402754</td>\n",
       "      <td>120.547971</td>\n",
       "      <td>120.436863</td>\n",
       "      <td>1.907742e+07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Open        High         Low       Close   Adj Close        Volume\n",
       "Date                                                                          \n",
       "1999    1.950782    2.007317    1.883559    1.947230    1.808134  6.433220e+06\n",
       "2000    8.781084    9.222697    8.360522    8.778826    8.151729  1.104182e+07\n",
       "2001   13.091254   13.600750   12.680548   13.181552   12.239956  2.782387e+07\n",
       "2002    9.690344    9.955093    9.344391    9.614749    8.927940  3.168655e+07\n",
       "2003    5.902434    6.042659    5.764960    5.900344    5.478865  2.430220e+07\n",
       "2004    6.484735    6.608810    6.353558    6.465913    6.004034  1.706331e+07\n",
       "2005    9.512381    9.659656    9.353175    9.513823    8.834223  1.542825e+07\n",
       "2006   18.057902   18.425126   17.720279   18.095963   16.803316  1.534446e+07\n",
       "2007   27.762045   28.251673   27.206056   27.724542   25.744098  1.514562e+07\n",
       "2008   16.004308   16.426245   15.521462   15.945613   14.806572  2.022721e+07\n",
       "2009   11.825119   12.114762   11.565952   11.850873   11.004331  1.919821e+07\n",
       "2010   13.576349   13.802659   13.318532   13.563175   12.594318  1.853295e+07\n",
       "2011   16.912540   17.267540   16.512143   16.887540   15.681214  2.289352e+07\n",
       "2012   13.526200   13.717400   13.319800   13.507880   12.551166  1.207757e+07\n",
       "2013   14.173571   14.329802   14.035278   14.189127   13.412278  8.843986e+06\n",
       "2014   18.543056   18.745476   18.348214   18.547064   17.875053  7.098902e+06\n",
       "2015   23.680595   23.979524   23.411071   23.718254   23.262283  7.756520e+06\n",
       "2016   53.630833   54.415397   52.895119   53.761190   53.475737  1.107062e+07\n",
       "2017  120.481305  122.300725  118.402754  120.547971  120.436863  1.907742e+07"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nvda.groupby(nvda.index.year).mean()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "zscore = lambda x:(x-x.mean())/x.std()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Adj Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1999-01-22</th>\n",
       "      <td>-0.340955</td>\n",
       "      <td>-0.088217</td>\n",
       "      <td>-0.579850</td>\n",
       "      <td>-0.510124</td>\n",
       "      <td>-0.510124</td>\n",
       "      <td>7.544438</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-25</th>\n",
       "      <td>-0.305578</td>\n",
       "      <td>-0.283222</td>\n",
       "      <td>-0.424964</td>\n",
       "      <td>-0.224161</td>\n",
       "      <td>-0.224161</td>\n",
       "      <td>0.777210</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-26</th>\n",
       "      <td>-0.199444</td>\n",
       "      <td>-0.223871</td>\n",
       "      <td>-0.415854</td>\n",
       "      <td>-0.458130</td>\n",
       "      <td>-0.458131</td>\n",
       "      <td>0.263637</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-27</th>\n",
       "      <td>-0.464778</td>\n",
       "      <td>-0.469747</td>\n",
       "      <td>-0.525185</td>\n",
       "      <td>-0.466795</td>\n",
       "      <td>-0.466798</td>\n",
       "      <td>-0.039791</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-28</th>\n",
       "      <td>-0.482465</td>\n",
       "      <td>-0.537575</td>\n",
       "      <td>-0.406741</td>\n",
       "      <td>-0.475462</td>\n",
       "      <td>-0.475461</td>\n",
       "      <td>-0.091517</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                Open      High       Low     Close  Adj Close    Volume\n",
       "Date                                                                   \n",
       "1999-01-22 -0.340955 -0.088217 -0.579850 -0.510124  -0.510124  7.544438\n",
       "1999-01-25 -0.305578 -0.283222 -0.424964 -0.224161  -0.224161  0.777210\n",
       "1999-01-26 -0.199444 -0.223871 -0.415854 -0.458130  -0.458131  0.263637\n",
       "1999-01-27 -0.464778 -0.469747 -0.525185 -0.466795  -0.466798 -0.039791\n",
       "1999-01-28 -0.482465 -0.537575 -0.406741 -0.475462  -0.475461 -0.091517"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "transformed = nvda.groupby(nvda.index.year).transform(zscore)\n",
    "transformed.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "用另一个function [apply](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.apply.html#pandas.DataFrame.apply) 也可以起到同样的效果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Adj Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1999-01-22</th>\n",
       "      <td>-0.340955</td>\n",
       "      <td>-0.088217</td>\n",
       "      <td>-0.579850</td>\n",
       "      <td>-0.510124</td>\n",
       "      <td>-0.510124</td>\n",
       "      <td>7.544438</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-25</th>\n",
       "      <td>-0.305578</td>\n",
       "      <td>-0.283222</td>\n",
       "      <td>-0.424964</td>\n",
       "      <td>-0.224161</td>\n",
       "      <td>-0.224161</td>\n",
       "      <td>0.777210</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-26</th>\n",
       "      <td>-0.199444</td>\n",
       "      <td>-0.223871</td>\n",
       "      <td>-0.415854</td>\n",
       "      <td>-0.458130</td>\n",
       "      <td>-0.458131</td>\n",
       "      <td>0.263637</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-27</th>\n",
       "      <td>-0.464778</td>\n",
       "      <td>-0.469747</td>\n",
       "      <td>-0.525185</td>\n",
       "      <td>-0.466795</td>\n",
       "      <td>-0.466798</td>\n",
       "      <td>-0.039791</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-28</th>\n",
       "      <td>-0.482465</td>\n",
       "      <td>-0.537575</td>\n",
       "      <td>-0.406741</td>\n",
       "      <td>-0.475462</td>\n",
       "      <td>-0.475461</td>\n",
       "      <td>-0.091517</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                Open      High       Low     Close  Adj Close    Volume\n",
       "Date                                                                   \n",
       "1999-01-22 -0.340955 -0.088217 -0.579850 -0.510124  -0.510124  7.544438\n",
       "1999-01-25 -0.305578 -0.283222 -0.424964 -0.224161  -0.224161  0.777210\n",
       "1999-01-26 -0.199444 -0.223871 -0.415854 -0.458130  -0.458131  0.263637\n",
       "1999-01-27 -0.464778 -0.469747 -0.525185 -0.466795  -0.466798 -0.039791\n",
       "1999-01-28 -0.482465 -0.537575 -0.406741 -0.475462  -0.475461 -0.091517"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "transformed = nvda.groupby(nvda.index.year).apply(zscore)\n",
    "transformed.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们来尝试一下把这些数据画出来"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x10a0b0be0>"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10a0a4550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "compare = pd.DataFrame({\"Original Adj Close\": nvda[\"Adj Close\"], \n",
    "                        \"Transormed Adj Close\": transformed[\"Adj Close\"]})\n",
    "compare.plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Adj Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1999-01-22</th>\n",
       "      <td>2.552084</td>\n",
       "      <td>2.53125</td>\n",
       "      <td>2.510417</td>\n",
       "      <td>2.546875</td>\n",
       "      <td>2.364945</td>\n",
       "      <td>67375200.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-25</th>\n",
       "      <td>2.552084</td>\n",
       "      <td>2.53125</td>\n",
       "      <td>2.510417</td>\n",
       "      <td>2.546875</td>\n",
       "      <td>2.364945</td>\n",
       "      <td>67375200.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-26</th>\n",
       "      <td>2.552084</td>\n",
       "      <td>2.53125</td>\n",
       "      <td>2.510417</td>\n",
       "      <td>2.546875</td>\n",
       "      <td>2.364945</td>\n",
       "      <td>67375200.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-27</th>\n",
       "      <td>2.552084</td>\n",
       "      <td>2.53125</td>\n",
       "      <td>2.510417</td>\n",
       "      <td>2.546875</td>\n",
       "      <td>2.364945</td>\n",
       "      <td>67375200.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-28</th>\n",
       "      <td>2.552084</td>\n",
       "      <td>2.53125</td>\n",
       "      <td>2.510417</td>\n",
       "      <td>2.546875</td>\n",
       "      <td>2.364945</td>\n",
       "      <td>67375200.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                Open     High       Low     Close  Adj Close      Volume\n",
       "Date                                                                    \n",
       "1999-01-22  2.552084  2.53125  2.510417  2.546875   2.364945  67375200.0\n",
       "1999-01-25  2.552084  2.53125  2.510417  2.546875   2.364945  67375200.0\n",
       "1999-01-26  2.552084  2.53125  2.510417  2.546875   2.364945  67375200.0\n",
       "1999-01-27  2.552084  2.53125  2.510417  2.546875   2.364945  67375200.0\n",
       "1999-01-28  2.552084  2.53125  2.510417  2.546875   2.364945  67375200.0"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "price_range = lambda x: x.max() - x.min()\n",
    "nvda.groupby(nvda.index.year).transform(price_range).head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Adj Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1999-01-22</th>\n",
       "      <td>3.947917</td>\n",
       "      <td>3.953125</td>\n",
       "      <td>3.84375</td>\n",
       "      <td>3.911458</td>\n",
       "      <td>3.632052</td>\n",
       "      <td>67867200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-25</th>\n",
       "      <td>3.947917</td>\n",
       "      <td>3.953125</td>\n",
       "      <td>3.84375</td>\n",
       "      <td>3.911458</td>\n",
       "      <td>3.632052</td>\n",
       "      <td>67867200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-26</th>\n",
       "      <td>3.947917</td>\n",
       "      <td>3.953125</td>\n",
       "      <td>3.84375</td>\n",
       "      <td>3.911458</td>\n",
       "      <td>3.632052</td>\n",
       "      <td>67867200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-27</th>\n",
       "      <td>3.947917</td>\n",
       "      <td>3.953125</td>\n",
       "      <td>3.84375</td>\n",
       "      <td>3.911458</td>\n",
       "      <td>3.632052</td>\n",
       "      <td>67867200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-28</th>\n",
       "      <td>3.947917</td>\n",
       "      <td>3.953125</td>\n",
       "      <td>3.84375</td>\n",
       "      <td>3.911458</td>\n",
       "      <td>3.632052</td>\n",
       "      <td>67867200</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                Open      High      Low     Close  Adj Close    Volume\n",
       "Date                                                                  \n",
       "1999-01-22  3.947917  3.953125  3.84375  3.911458   3.632052  67867200\n",
       "1999-01-25  3.947917  3.953125  3.84375  3.911458   3.632052  67867200\n",
       "1999-01-26  3.947917  3.953125  3.84375  3.911458   3.632052  67867200\n",
       "1999-01-27  3.947917  3.953125  3.84375  3.911458   3.632052  67867200\n",
       "1999-01-28  3.947917  3.953125  3.84375  3.911458   3.632052  67867200"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nvda.groupby(nvda.index.year).transform(\"max\").head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### [filter](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.filter.html)\n",
    "\n",
    "比如我们想要找出符合统计特征的一些内容，就像SQL里面的having, where语句"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "2    2\n",
       "3    2\n",
       "4    2\n",
       "6    4\n",
       "7    4\n",
       "8    5\n",
       "dtype: int64"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s = pd.Series([1,1,2,2,2,3,4,4,5])\n",
    "s.groupby(s).filter(lambda x: x.sum() > 4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>A</th>\n",
       "      <th>B</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>a</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>a</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>a</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>b</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>b</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>5</td>\n",
       "      <td>b</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   A  B\n",
       "0  0  a\n",
       "1  1  a\n",
       "2  2  a\n",
       "3  3  b\n",
       "4  4  b\n",
       "5  5  b"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.DataFrame({\"A\": np.arange(8), \"B\":list(\"aaabbbcc\")})\n",
    "df.groupby(\"B\").filter(lambda x: len(x) > 2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们来看看均价超过100的有哪些月份"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Adj Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1999-01-22</th>\n",
       "      <td>1.750000</td>\n",
       "      <td>1.953125</td>\n",
       "      <td>1.552083</td>\n",
       "      <td>1.640625</td>\n",
       "      <td>1.523430</td>\n",
       "      <td>67867200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-25</th>\n",
       "      <td>1.770833</td>\n",
       "      <td>1.833333</td>\n",
       "      <td>1.640625</td>\n",
       "      <td>1.812500</td>\n",
       "      <td>1.683028</td>\n",
       "      <td>12762000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-26</th>\n",
       "      <td>1.833333</td>\n",
       "      <td>1.869792</td>\n",
       "      <td>1.645833</td>\n",
       "      <td>1.671875</td>\n",
       "      <td>1.552448</td>\n",
       "      <td>8580000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-27</th>\n",
       "      <td>1.677083</td>\n",
       "      <td>1.718750</td>\n",
       "      <td>1.583333</td>\n",
       "      <td>1.666667</td>\n",
       "      <td>1.547611</td>\n",
       "      <td>6109200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1999-01-28</th>\n",
       "      <td>1.666667</td>\n",
       "      <td>1.677083</td>\n",
       "      <td>1.651042</td>\n",
       "      <td>1.661458</td>\n",
       "      <td>1.542776</td>\n",
       "      <td>5688000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                Open      High       Low     Close  Adj Close    Volume\n",
       "Date                                                                   \n",
       "1999-01-22  1.750000  1.953125  1.552083  1.640625   1.523430  67867200\n",
       "1999-01-25  1.770833  1.833333  1.640625  1.812500   1.683028  12762000\n",
       "1999-01-26  1.833333  1.869792  1.645833  1.671875   1.552448   8580000\n",
       "1999-01-27  1.677083  1.718750  1.583333  1.666667   1.547611   6109200\n",
       "1999-01-28  1.666667  1.677083  1.651042  1.661458   1.542776   5688000"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nvda.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "key_month = lambda x: x[0:7]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Open</th>\n",
       "      <th>High</th>\n",
       "      <th>Low</th>\n",
       "      <th>Close</th>\n",
       "      <th>Adj Close</th>\n",
       "      <th>Volume</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2016-07-01</th>\n",
       "      <td>46.750000</td>\n",
       "      <td>47.360001</td>\n",
       "      <td>46.500000</td>\n",
       "      <td>46.660000</td>\n",
       "      <td>46.397064</td>\n",
       "      <td>5462200</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-07-05</th>\n",
       "      <td>46.400002</td>\n",
       "      <td>47.430000</td>\n",
       "      <td>46.029999</td>\n",
       "      <td>47.349998</td>\n",
       "      <td>47.083176</td>\n",
       "      <td>9277100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-07-06</th>\n",
       "      <td>47.020000</td>\n",
       "      <td>47.930000</td>\n",
       "      <td>46.779999</td>\n",
       "      <td>47.650002</td>\n",
       "      <td>47.381493</td>\n",
       "      <td>6827600</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-07-07</th>\n",
       "      <td>47.970001</td>\n",
       "      <td>49.060001</td>\n",
       "      <td>47.750000</td>\n",
       "      <td>48.889999</td>\n",
       "      <td>48.614498</td>\n",
       "      <td>9885000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2016-07-08</th>\n",
       "      <td>49.410000</td>\n",
       "      <td>51.090000</td>\n",
       "      <td>49.220001</td>\n",
       "      <td>50.849998</td>\n",
       "      <td>50.563454</td>\n",
       "      <td>12048300</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                 Open       High        Low      Close  Adj Close    Volume\n",
       "Date                                                                       \n",
       "2016-07-01  46.750000  47.360001  46.500000  46.660000  46.397064   5462200\n",
       "2016-07-05  46.400002  47.430000  46.029999  47.349998  47.083176   9277100\n",
       "2016-07-06  47.020000  47.930000  46.779999  47.650002  47.381493   6827600\n",
       "2016-07-07  47.970001  49.060001  47.750000  48.889999  48.614498   9885000\n",
       "2016-07-08  49.410000  51.090000  49.220001  50.849998  50.563454  12048300"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "nvda.groupby([nvda.index.year, nvda.index.month]).filter(lambda x: x[\"Adj Close\"].mean() > 50).head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 小结： \n",
    "Group by: split-apply-combine\n",
    "- 首先第一步是分离数据split，按照一定的规则把数据分成几类。\n",
    "- 第二步是对每一部分数据都做一定的操作，这个操作可以是汇总操作aggregate，可以是一个变换transform，也可以是过滤数据filter。\n",
    "- 最后一步就是把处理过的数据再合成一张DataFrame。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "## 表格匹配与拼接\n",
    "### 2018七月在线 机器学习集训营第六期 julyedu.com \n",
    "- concat\n",
    "- append\n",
    "- merge\n",
    "- join"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           apts    cars\n",
      "Shanghai  55000  200000\n",
      "Beijing   60000  300000\n"
     ]
    }
   ],
   "source": [
    "df1 = pd.DataFrame({'apts': [55000, 60000],\n",
    "                   'cars': [200000, 300000],},\n",
    "                  index = ['Shanghai', 'Beijing'])\n",
    "print(df1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "            cars   apts\n",
      "Hangzhou  150000  25000\n",
      "Najing    120000  20000\n"
     ]
    }
   ],
   "source": [
    "df2 = pd.DataFrame({'cars': [150000, 120000],\n",
    "                    'apts': [25000, 20000],\n",
    "                   },\n",
    "                  index = ['Hangzhou', 'Najing'])\n",
    "print(df2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "            apts    cars\n",
      "Guangzhou  30000  180000\n",
      "Chongqing  10000  100000\n"
     ]
    }
   ],
   "source": [
    "df3 = pd.DataFrame({'apts': [30000, 10000],\n",
    "                   'cars': [180000, 100000],},\n",
    "                  index = ['Guangzhou', 'Chongqing'])\n",
    "print(df3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### [concatenate](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.concat.html)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "            apts    cars\n",
      "Shanghai   55000  200000\n",
      "Beijing    60000  300000\n",
      "Hangzhou   25000  150000\n",
      "Najing     20000  120000\n",
      "Guangzhou  30000  180000\n",
      "Chongqing  10000  100000\n"
     ]
    }
   ],
   "source": [
    "frames = [df1, df2, df3] \n",
    "result = pd.concat(frames, sort=False)\n",
    "print(result)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在concatenate的时候可以指定keys，这样可以给每一个部分加上一个Key。\n",
    "\n",
    "以下的例子就构造了一个hierarchical index。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              apts    cars\n",
      "x Shanghai   55000  200000\n",
      "  Beijing    60000  300000\n",
      "y Hangzhou   25000  150000\n",
      "  Najing     20000  120000\n",
      "z Guangzhou  30000  180000\n",
      "  Chongqing  10000  100000\n"
     ]
    }
   ],
   "source": [
    "result2 = pd.concat(frames, keys=['x', 'y', 'z'], sort=False)\n",
    "print(result2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>apts</th>\n",
       "      <th>cars</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Hangzhou</th>\n",
       "      <td>25000</td>\n",
       "      <td>150000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Najing</th>\n",
       "      <td>20000</td>\n",
       "      <td>120000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           apts    cars\n",
       "Hangzhou  25000  150000\n",
       "Najing    20000  120000"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "result2.loc[\"y\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           salaries\n",
      "Suzhou        10000\n",
      "Beijing       30000\n",
      "Shanghai      30000\n",
      "Guangzhou     20000\n",
      "Tianjin       15000\n"
     ]
    }
   ],
   "source": [
    "df4 = pd.DataFrame({'salaries': [10000, 30000, 30000, 20000, 15000]},\n",
    "                  index = ['Suzhou', 'Beijing', 'Shanghai', 'Guangzhou', 'Tianjin'])\n",
    "print(df4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              apts      cars  salaries\n",
      "Shanghai   55000.0  200000.0   30000.0\n",
      "Beijing    60000.0  300000.0   30000.0\n",
      "Hangzhou   25000.0  150000.0       NaN\n",
      "Najing     20000.0  120000.0       NaN\n",
      "Guangzhou  30000.0  180000.0   20000.0\n",
      "Chongqing  10000.0  100000.0       NaN\n",
      "Suzhou         NaN       NaN   10000.0\n",
      "Tianjin        NaN       NaN   15000.0\n"
     ]
    }
   ],
   "source": [
    "result3 = pd.concat([result, df4], axis=1, sort=False)\n",
    "print(result3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "用inner可以去掉NaN,也就是说如果出现了不匹配的行就会被忽略"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "            apts    cars  salaries\n",
      "Shanghai   55000  200000     30000\n",
      "Beijing    60000  300000     30000\n",
      "Guangzhou  30000  180000     20000\n"
     ]
    }
   ],
   "source": [
    "result3 = pd.concat([result, df4], axis=1, join='inner')\n",
    "print(result3)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 用[append](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.append.html)来做concatenation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           apts    cars\n",
      "Shanghai  55000  200000\n",
      "Beijing   60000  300000\n",
      "Hangzhou  25000  150000\n",
      "Najing    20000  120000\n"
     ]
    }
   ],
   "source": [
    "print(df1.append(df2, sort=False))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<bound method DataFrame.join of            apts    cars\n",
       "Shanghai  55000  200000\n",
       "Beijing   60000  300000>"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df1.join"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              apts      cars  salaries\n",
      "Shanghai   55000.0  200000.0       NaN\n",
      "Beijing    60000.0  300000.0       NaN\n",
      "Suzhou         NaN       NaN   10000.0\n",
      "Beijing        NaN       NaN   30000.0\n",
      "Shanghai       NaN       NaN   30000.0\n",
      "Guangzhou      NaN       NaN   20000.0\n",
      "Tianjin        NaN       NaN   15000.0\n"
     ]
    }
   ],
   "source": [
    "print(df1.append(df4, sort=False))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Series和DataFrame还可以被一起concatenate，这时候Series会先被转成DataFrame然后做Join，因为Series本来就是一个只有一维的DataFrame对吧。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Shanghai    60\n",
      "Beijing     50\n",
      "Name: meal, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "s1 = pd.Series([60, 50], index=['Shanghai', 'Beijing'], name='meal')\n",
    "print(s1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           apts    cars\n",
      "Shanghai  55000  200000\n",
      "Beijing   60000  300000\n"
     ]
    }
   ],
   "source": [
    "print(df1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           apts    cars  meal\n",
      "Shanghai  55000  200000    60\n",
      "Beijing   60000  300000    50\n"
     ]
    }
   ],
   "source": [
    "print(pd.concat([df1, s1], axis=1))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "下面讲如何append一个row到DataFrame里。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "apts    18000\n",
      "cars    12000\n",
      "Name: Xiamen, dtype: int64\n"
     ]
    }
   ],
   "source": [
    "s2 = pd.Series([18000, 12000], index=['apts', 'cars'], name='Xiamen') #注意这里的name是必须要有的，因为要用作Index。\n",
    "print(s2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           apts    cars\n",
      "Shanghai  55000  200000\n",
      "Beijing   60000  300000\n",
      "Xiamen    18000   12000\n"
     ]
    }
   ],
   "source": [
    "print(df1.append(s2))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Merge(Join)\n",
    "### 2018七月在线 机器学习集训营 julyedu.com "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    apts    cars      city\n",
      "0  55000  200000  Shanghai\n",
      "1  60000  300000   Beijing\n",
      "2  58000  250000  Shenzhen\n"
     ]
    }
   ],
   "source": [
    "df1 = pd.DataFrame({'apts': [55000, 60000, 58000],\n",
    "                   'cars': [200000, 300000,250000],\n",
    "                  'city': ['Shanghai', 'Beijing','Shenzhen']})\n",
    "print(df1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   salaries       city\n",
      "0     10000     Suzhou\n",
      "1     30000    Beijing\n",
      "2     30000   Shanghai\n",
      "3     20000  Guangzhou\n",
      "4     15000    Tianjin\n"
     ]
    }
   ],
   "source": [
    "df4 = pd.DataFrame({'salaries': [10000, 30000, 30000, 20000, 15000],\n",
    "                  'city': ['Suzhou', 'Beijing', 'Shanghai', 'Guangzhou', 'Tianjin']})\n",
    "print(df4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>apts</th>\n",
       "      <th>cars</th>\n",
       "      <th>city</th>\n",
       "      <th>salaries</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>55000</td>\n",
       "      <td>200000</td>\n",
       "      <td>Shanghai</td>\n",
       "      <td>30000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>60000</td>\n",
       "      <td>300000</td>\n",
       "      <td>Beijing</td>\n",
       "      <td>30000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    apts    cars      city  salaries\n",
       "0  55000  200000  Shanghai     30000\n",
       "1  60000  300000   Beijing     30000"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "result = pd.merge(df1, df4, on='city')\n",
    "result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>apts</th>\n",
       "      <th>cars</th>\n",
       "      <th>city</th>\n",
       "      <th>salaries</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>55000</td>\n",
       "      <td>200000</td>\n",
       "      <td>Shanghai</td>\n",
       "      <td>30000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>60000</td>\n",
       "      <td>300000</td>\n",
       "      <td>Beijing</td>\n",
       "      <td>30000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    apts    cars      city  salaries\n",
       "0  55000  200000  Shanghai     30000\n",
       "1  60000  300000   Beijing     30000"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "result = pd.merge(df1, df4)\n",
    "result"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "      apts      cars       city  salaries\n",
      "0  55000.0  200000.0   Shanghai   30000.0\n",
      "1  60000.0  300000.0    Beijing   30000.0\n",
      "2  58000.0  250000.0   Shenzhen       NaN\n",
      "3      NaN       NaN     Suzhou   10000.0\n",
      "4      NaN       NaN  Guangzhou   20000.0\n",
      "5      NaN       NaN    Tianjin   15000.0\n"
     ]
    }
   ],
   "source": [
    "result = pd.merge(df1, df4, on='city', how='outer')\n",
    "print(result)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "      apts      cars       city  salaries\n",
      "0  55000.0  200000.0   Shanghai     30000\n",
      "1  60000.0  300000.0    Beijing     30000\n",
      "2      NaN       NaN     Suzhou     10000\n",
      "3      NaN       NaN  Guangzhou     20000\n",
      "4      NaN       NaN    Tianjin     15000\n"
     ]
    }
   ],
   "source": [
    "result = pd.merge(df1, df4, on='city', how='right')\n",
    "print(result)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "    apts    cars      city  salaries\n",
      "0  55000  200000  Shanghai   30000.0\n",
      "1  60000  300000   Beijing   30000.0\n",
      "2  58000  250000  Shenzhen       NaN\n"
     ]
    }
   ],
   "source": [
    "result = pd.merge(df1, df4, on='city', how='left')\n",
    "print(result)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "其实用concat也可以做同样的事情"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>apts</th>\n",
       "      <th>cars</th>\n",
       "      <th>salaries</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>city</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Shanghai</th>\n",
       "      <td>55000</td>\n",
       "      <td>200000</td>\n",
       "      <td>30000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Beijing</th>\n",
       "      <td>60000</td>\n",
       "      <td>300000</td>\n",
       "      <td>30000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           apts    cars  salaries\n",
       "city                             \n",
       "Shanghai  55000  200000     30000\n",
       "Beijing   60000  300000     30000"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.concat([df1.set_index(\"city\"), df4.set_index('city')], sort=False, axis=1, join=\"inner\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### join on index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           apts    cars\n",
      "Shanghai  55000  200000\n",
      "Beijing   60000  300000\n",
      "Shenzhen  58000  250000\n"
     ]
    }
   ],
   "source": [
    "df1 = pd.DataFrame({'apts': [55000, 60000, 58000],\n",
    "                   'cars': [200000, 300000,250000]},\n",
    "                  index=['Shanghai', 'Beijing','Shenzhen'])\n",
    "print(df1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           salaries\n",
      "Suzhou        10000\n",
      "Beijing       30000\n",
      "Shanghai      30000\n",
      "Guangzhou     20000\n",
      "Tianjin       15000\n"
     ]
    }
   ],
   "source": [
    "df4 = pd.DataFrame({'salaries': [10000, 30000, 30000, 20000, 15000]},\n",
    "                  index=['Suzhou', 'Beijing', 'Shanghai', 'Guangzhou', 'Tianjin'])\n",
    "print(df4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "           apts    cars  salaries\n",
      "Shanghai  55000  200000   30000.0\n",
      "Beijing   60000  300000   30000.0\n",
      "Shenzhen  58000  250000       NaN\n"
     ]
    }
   ],
   "source": [
    "print(df1.join(df4))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "也可以用merge来写"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>apts</th>\n",
       "      <th>cars</th>\n",
       "      <th>salaries</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Beijing</th>\n",
       "      <td>60000.0</td>\n",
       "      <td>300000.0</td>\n",
       "      <td>30000.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Guangzhou</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>20000.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Shanghai</th>\n",
       "      <td>55000.0</td>\n",
       "      <td>200000.0</td>\n",
       "      <td>30000.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Shenzhen</th>\n",
       "      <td>58000.0</td>\n",
       "      <td>250000.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Suzhou</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>10000.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Tianjin</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15000.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              apts      cars  salaries\n",
       "Beijing    60000.0  300000.0   30000.0\n",
       "Guangzhou      NaN       NaN   20000.0\n",
       "Shanghai   55000.0  200000.0   30000.0\n",
       "Shenzhen   58000.0  250000.0       NaN\n",
       "Suzhou         NaN       NaN   10000.0\n",
       "Tianjin        NaN       NaN   15000.0"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.merge(df1, df4, left_index=True, right_index=True, how='outer')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>apts</th>\n",
       "      <th>cars</th>\n",
       "      <th>salaries</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Shanghai</th>\n",
       "      <td>55000.0</td>\n",
       "      <td>200000.0</td>\n",
       "      <td>30000.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Beijing</th>\n",
       "      <td>60000.0</td>\n",
       "      <td>300000.0</td>\n",
       "      <td>30000.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Shenzhen</th>\n",
       "      <td>58000.0</td>\n",
       "      <td>250000.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Suzhou</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>10000.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Guangzhou</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>20000.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Tianjin</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15000.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              apts      cars  salaries\n",
       "Shanghai   55000.0  200000.0   30000.0\n",
       "Beijing    60000.0  300000.0   30000.0\n",
       "Shenzhen   58000.0  250000.0       NaN\n",
       "Suzhou         NaN       NaN   10000.0\n",
       "Guangzhou      NaN       NaN   20000.0\n",
       "Tianjin        NaN       NaN   15000.0"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.concat([df1, df4], sort=False, axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 下面我们来尝试一个稍微复杂一点的表格汇总+拼接项目"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "以下表格记录了用户对电影的评分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>userId</th>\n",
       "      <th>movieId</th>\n",
       "      <th>rating</th>\n",
       "      <th>timestamp</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>31</td>\n",
       "      <td>2.5</td>\n",
       "      <td>1260759144</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>1029</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1260759179</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>1061</td>\n",
       "      <td>3.0</td>\n",
       "      <td>1260759182</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>1129</td>\n",
       "      <td>2.0</td>\n",
       "      <td>1260759185</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>1172</td>\n",
       "      <td>4.0</td>\n",
       "      <td>1260759205</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   userId  movieId  rating   timestamp\n",
       "0       1       31     2.5  1260759144\n",
       "1       1     1029     3.0  1260759179\n",
       "2       1     1061     3.0  1260759182\n",
       "3       1     1129     2.0  1260759185\n",
       "4       1     1172     4.0  1260759205"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ratings = pd.read_csv(\"data/ratings_small.csv\")\n",
    "ratings.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(100004, 4)"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ratings.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们来计算一下每部电影的平均分，以及有多少人打分。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rating</th>\n",
       "      <th>count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>movieId</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3.872470</td>\n",
       "      <td>247</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3.401869</td>\n",
       "      <td>107</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3.161017</td>\n",
       "      <td>59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2.384615</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>3.267857</td>\n",
       "      <td>56</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           rating  count\n",
       "movieId                 \n",
       "1        3.872470    247\n",
       "2        3.401869    107\n",
       "3        3.161017     59\n",
       "4        2.384615     13\n",
       "5        3.267857     56"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ratings_mean = ratings.groupby(\"movieId\").agg({\"rating\": np.mean, \"timestamp\": \"count\"}).rename(columns={\"timestamp\": \"count\"})\n",
    "ratings_mean.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(9066, 2)"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ratings_mean.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "下一张表格是每部电影的具体信息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/zeweichu/anaconda3/envs/py36/lib/python3.6/site-packages/IPython/core/interactiveshell.py:2698: DtypeWarning: Columns (10) have mixed types. Specify dtype option on import or set low_memory=False.\n",
      "  interactivity=interactivity, compiler=compiler, result=result)\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>adult</th>\n",
       "      <th>belongs_to_collection</th>\n",
       "      <th>budget</th>\n",
       "      <th>genres</th>\n",
       "      <th>homepage</th>\n",
       "      <th>id</th>\n",
       "      <th>imdb_id</th>\n",
       "      <th>original_language</th>\n",
       "      <th>original_title</th>\n",
       "      <th>overview</th>\n",
       "      <th>...</th>\n",
       "      <th>release_date</th>\n",
       "      <th>revenue</th>\n",
       "      <th>runtime</th>\n",
       "      <th>spoken_languages</th>\n",
       "      <th>status</th>\n",
       "      <th>tagline</th>\n",
       "      <th>title</th>\n",
       "      <th>video</th>\n",
       "      <th>vote_average</th>\n",
       "      <th>vote_count</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>False</td>\n",
       "      <td>{'id': 10194, 'name': 'Toy Story Collection', ...</td>\n",
       "      <td>30000000</td>\n",
       "      <td>[{'id': 16, 'name': 'Animation'}, {'id': 35, '...</td>\n",
       "      <td>http://toystory.disney.com/toy-story</td>\n",
       "      <td>862</td>\n",
       "      <td>tt0114709</td>\n",
       "      <td>en</td>\n",
       "      <td>Toy Story</td>\n",
       "      <td>Led by Woody, Andy's toys live happily in his ...</td>\n",
       "      <td>...</td>\n",
       "      <td>1995-10-30</td>\n",
       "      <td>373554033.0</td>\n",
       "      <td>81.0</td>\n",
       "      <td>[{'iso_639_1': 'en', 'name': 'English'}]</td>\n",
       "      <td>Released</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Toy Story</td>\n",
       "      <td>False</td>\n",
       "      <td>7.7</td>\n",
       "      <td>5415.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>65000000</td>\n",
       "      <td>[{'id': 12, 'name': 'Adventure'}, {'id': 14, '...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>8844</td>\n",
       "      <td>tt0113497</td>\n",
       "      <td>en</td>\n",
       "      <td>Jumanji</td>\n",
       "      <td>When siblings Judy and Peter discover an encha...</td>\n",
       "      <td>...</td>\n",
       "      <td>1995-12-15</td>\n",
       "      <td>262797249.0</td>\n",
       "      <td>104.0</td>\n",
       "      <td>[{'iso_639_1': 'en', 'name': 'English'}, {'iso...</td>\n",
       "      <td>Released</td>\n",
       "      <td>Roll the dice and unleash the excitement!</td>\n",
       "      <td>Jumanji</td>\n",
       "      <td>False</td>\n",
       "      <td>6.9</td>\n",
       "      <td>2413.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>False</td>\n",
       "      <td>{'id': 119050, 'name': 'Grumpy Old Men Collect...</td>\n",
       "      <td>0</td>\n",
       "      <td>[{'id': 10749, 'name': 'Romance'}, {'id': 35, ...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>15602</td>\n",
       "      <td>tt0113228</td>\n",
       "      <td>en</td>\n",
       "      <td>Grumpier Old Men</td>\n",
       "      <td>A family wedding reignites the ancient feud be...</td>\n",
       "      <td>...</td>\n",
       "      <td>1995-12-22</td>\n",
       "      <td>0.0</td>\n",
       "      <td>101.0</td>\n",
       "      <td>[{'iso_639_1': 'en', 'name': 'English'}]</td>\n",
       "      <td>Released</td>\n",
       "      <td>Still Yelling. Still Fighting. Still Ready for...</td>\n",
       "      <td>Grumpier Old Men</td>\n",
       "      <td>False</td>\n",
       "      <td>6.5</td>\n",
       "      <td>92.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>16000000</td>\n",
       "      <td>[{'id': 35, 'name': 'Comedy'}, {'id': 18, 'nam...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>31357</td>\n",
       "      <td>tt0114885</td>\n",
       "      <td>en</td>\n",
       "      <td>Waiting to Exhale</td>\n",
       "      <td>Cheated on, mistreated and stepped on, the wom...</td>\n",
       "      <td>...</td>\n",
       "      <td>1995-12-22</td>\n",
       "      <td>81452156.0</td>\n",
       "      <td>127.0</td>\n",
       "      <td>[{'iso_639_1': 'en', 'name': 'English'}]</td>\n",
       "      <td>Released</td>\n",
       "      <td>Friends are the people who let you be yourself...</td>\n",
       "      <td>Waiting to Exhale</td>\n",
       "      <td>False</td>\n",
       "      <td>6.1</td>\n",
       "      <td>34.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>False</td>\n",
       "      <td>{'id': 96871, 'name': 'Father of the Bride Col...</td>\n",
       "      <td>0</td>\n",
       "      <td>[{'id': 35, 'name': 'Comedy'}]</td>\n",
       "      <td>NaN</td>\n",
       "      <td>11862</td>\n",
       "      <td>tt0113041</td>\n",
       "      <td>en</td>\n",
       "      <td>Father of the Bride Part II</td>\n",
       "      <td>Just when George Banks has recovered from his ...</td>\n",
       "      <td>...</td>\n",
       "      <td>1995-02-10</td>\n",
       "      <td>76578911.0</td>\n",
       "      <td>106.0</td>\n",
       "      <td>[{'iso_639_1': 'en', 'name': 'English'}]</td>\n",
       "      <td>Released</td>\n",
       "      <td>Just When His World Is Back To Normal... He's ...</td>\n",
       "      <td>Father of the Bride Part II</td>\n",
       "      <td>False</td>\n",
       "      <td>5.7</td>\n",
       "      <td>173.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 24 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   adult                              belongs_to_collection    budget  \\\n",
       "0  False  {'id': 10194, 'name': 'Toy Story Collection', ...  30000000   \n",
       "1  False                                                NaN  65000000   \n",
       "2  False  {'id': 119050, 'name': 'Grumpy Old Men Collect...         0   \n",
       "3  False                                                NaN  16000000   \n",
       "4  False  {'id': 96871, 'name': 'Father of the Bride Col...         0   \n",
       "\n",
       "                                              genres  \\\n",
       "0  [{'id': 16, 'name': 'Animation'}, {'id': 35, '...   \n",
       "1  [{'id': 12, 'name': 'Adventure'}, {'id': 14, '...   \n",
       "2  [{'id': 10749, 'name': 'Romance'}, {'id': 35, ...   \n",
       "3  [{'id': 35, 'name': 'Comedy'}, {'id': 18, 'nam...   \n",
       "4                     [{'id': 35, 'name': 'Comedy'}]   \n",
       "\n",
       "                               homepage     id    imdb_id original_language  \\\n",
       "0  http://toystory.disney.com/toy-story    862  tt0114709                en   \n",
       "1                                   NaN   8844  tt0113497                en   \n",
       "2                                   NaN  15602  tt0113228                en   \n",
       "3                                   NaN  31357  tt0114885                en   \n",
       "4                                   NaN  11862  tt0113041                en   \n",
       "\n",
       "                original_title  \\\n",
       "0                    Toy Story   \n",
       "1                      Jumanji   \n",
       "2             Grumpier Old Men   \n",
       "3            Waiting to Exhale   \n",
       "4  Father of the Bride Part II   \n",
       "\n",
       "                                            overview    ...     release_date  \\\n",
       "0  Led by Woody, Andy's toys live happily in his ...    ...       1995-10-30   \n",
       "1  When siblings Judy and Peter discover an encha...    ...       1995-12-15   \n",
       "2  A family wedding reignites the ancient feud be...    ...       1995-12-22   \n",
       "3  Cheated on, mistreated and stepped on, the wom...    ...       1995-12-22   \n",
       "4  Just when George Banks has recovered from his ...    ...       1995-02-10   \n",
       "\n",
       "       revenue runtime                                   spoken_languages  \\\n",
       "0  373554033.0    81.0           [{'iso_639_1': 'en', 'name': 'English'}]   \n",
       "1  262797249.0   104.0  [{'iso_639_1': 'en', 'name': 'English'}, {'iso...   \n",
       "2          0.0   101.0           [{'iso_639_1': 'en', 'name': 'English'}]   \n",
       "3   81452156.0   127.0           [{'iso_639_1': 'en', 'name': 'English'}]   \n",
       "4   76578911.0   106.0           [{'iso_639_1': 'en', 'name': 'English'}]   \n",
       "\n",
       "     status                                            tagline  \\\n",
       "0  Released                                                NaN   \n",
       "1  Released          Roll the dice and unleash the excitement!   \n",
       "2  Released  Still Yelling. Still Fighting. Still Ready for...   \n",
       "3  Released  Friends are the people who let you be yourself...   \n",
       "4  Released  Just When His World Is Back To Normal... He's ...   \n",
       "\n",
       "                         title  video vote_average vote_count  \n",
       "0                    Toy Story  False          7.7     5415.0  \n",
       "1                      Jumanji  False          6.9     2413.0  \n",
       "2             Grumpier Old Men  False          6.5       92.0  \n",
       "3            Waiting to Exhale  False          6.1       34.0  \n",
       "4  Father of the Bride Part II  False          5.7      173.0  \n",
       "\n",
       "[5 rows x 24 columns]"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "meta = pd.read_csv(\"data/movies_metadata.csv\")\n",
    "meta.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Index(['adult', 'belongs_to_collection', 'budget', 'genres', 'homepage', 'id',\n",
       "       'imdb_id', 'original_language', 'original_title', 'overview',\n",
       "       'popularity', 'poster_path', 'production_companies',\n",
       "       'production_countries', 'release_date', 'revenue', 'runtime',\n",
       "       'spoken_languages', 'status', 'tagline', 'title', 'video',\n",
       "       'vote_average', 'vote_count'],\n",
       "      dtype='object')"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "meta.columns"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们只需要电影的ID和名字"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>862</td>\n",
       "      <td>Toy Story</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>8844</td>\n",
       "      <td>Jumanji</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>15602</td>\n",
       "      <td>Grumpier Old Men</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>31357</td>\n",
       "      <td>Waiting to Exhale</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>11862</td>\n",
       "      <td>Father of the Bride Part II</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      id                        title\n",
       "0    862                    Toy Story\n",
       "1   8844                      Jumanji\n",
       "2  15602             Grumpier Old Men\n",
       "3  31357            Waiting to Exhale\n",
       "4  11862  Father of the Bride Part II"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "meta[[\"id\", \"title\"]].head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>862</td>\n",
       "      <td>Toy Story</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>8844</td>\n",
       "      <td>Jumanji</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>15602</td>\n",
       "      <td>Grumpier Old Men</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>31357</td>\n",
       "      <td>Waiting to Exhale</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>11862</td>\n",
       "      <td>Father of the Bride Part II</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      id                        title\n",
       "0    862                    Toy Story\n",
       "1   8844                      Jumanji\n",
       "2  15602             Grumpier Old Men\n",
       "3  31357            Waiting to Exhale\n",
       "4  11862  Father of the Bride Part II"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movie_titles = meta[[\"id\", \"title\"]]\n",
    "movie_titles.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(9066, 2)\n",
      "(45466, 2)\n"
     ]
    }
   ],
   "source": [
    "print(ratings_mean.shape)\n",
    "print(movie_titles.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在处理实际数据的时候，经常容易碰到脏数据，而怎么样处理脏数据其实就需要根据实际情况来决定了。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/zeweichu/anaconda3/envs/py36/lib/python3.6/site-packages/pandas/core/indexing.py:189: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
      "  self._setitem_with_indexer(indexer, value)\n",
      "/Users/zeweichu/anaconda3/envs/py36/lib/python3.6/site-packages/ipykernel_launcher.py:5: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
      "  \"\"\"\n"
     ]
    }
   ],
   "source": [
    "for i in range(movie_titles.shape[0]):\n",
    "    try:\n",
    "        int(movie_titles.loc[i, \"id\"])\n",
    "    except ValueError:\n",
    "        movie_titles.loc[i, \"id\"] = 99999999999999"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/zeweichu/anaconda3/envs/py36/lib/python3.6/site-packages/pandas/core/indexing.py:630: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
      "  self.obj[item_labels[indexer[info_axis]]] = value\n"
     ]
    }
   ],
   "source": [
    "movie_titles.loc[:, \"id\"] = pd.to_numeric(movie_titles.loc[:, \"id\"])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "现在把电影的评分和电影名称表格拼接起来。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rating</th>\n",
       "      <th>count</th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>4342</th>\n",
       "      <td>3.401869</td>\n",
       "      <td>107</td>\n",
       "      <td>2</td>\n",
       "      <td>Ariel</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12947</th>\n",
       "      <td>3.161017</td>\n",
       "      <td>59</td>\n",
       "      <td>3</td>\n",
       "      <td>Shadows in Paradise</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>3.267857</td>\n",
       "      <td>56</td>\n",
       "      <td>5</td>\n",
       "      <td>Four Rooms</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>474</th>\n",
       "      <td>3.884615</td>\n",
       "      <td>104</td>\n",
       "      <td>6</td>\n",
       "      <td>Judgment Night</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>256</th>\n",
       "      <td>3.689024</td>\n",
       "      <td>82</td>\n",
       "      <td>11</td>\n",
       "      <td>Star Wars</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         rating  count  id                title\n",
       "4342   3.401869    107   2                Ariel\n",
       "12947  3.161017     59   3  Shadows in Paradise\n",
       "17     3.267857     56   5           Four Rooms\n",
       "474    3.884615    104   6       Judgment Night\n",
       "256    3.689024     82  11            Star Wars"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movie_name_ratings = pd.merge(ratings_mean, movie_titles, how=\"inner\", left_index=True, right_on=\"id\")\n",
    "movie_name_ratings.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>rating</th>\n",
       "      <th>count</th>\n",
       "      <th>id</th>\n",
       "      <th>title</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>6388</th>\n",
       "      <td>4.256173</td>\n",
       "      <td>324</td>\n",
       "      <td>296</td>\n",
       "      <td>Terminator 3: Rise of the Machines</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4020</th>\n",
       "      <td>4.487138</td>\n",
       "      <td>311</td>\n",
       "      <td>318</td>\n",
       "      <td>The Million Dollar Hotel</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3382</th>\n",
       "      <td>4.138158</td>\n",
       "      <td>304</td>\n",
       "      <td>593</td>\n",
       "      <td>Solaris</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>938</th>\n",
       "      <td>4.221649</td>\n",
       "      <td>291</td>\n",
       "      <td>260</td>\n",
       "      <td>The 39 Steps</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5004</th>\n",
       "      <td>3.706204</td>\n",
       "      <td>274</td>\n",
       "      <td>480</td>\n",
       "      <td>Monsoon Wedding</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        rating  count   id                               title\n",
       "6388  4.256173    324  296  Terminator 3: Rise of the Machines\n",
       "4020  4.487138    311  318            The Million Dollar Hotel\n",
       "3382  4.138158    304  593                             Solaris\n",
       "938   4.221649    291  260                        The 39 Steps\n",
       "5004  3.706204    274  480                     Monsoon Wedding"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "movie_name_ratings.sort_values(by=[\"count\", \"rating\"], ascending=False).head(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 项目时间\n",
    "### 2018七月在线 机器学习集训营第六期 julyedu.com"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "处理实际数据的时候，很多时候时间都花在处理脏数据上。\n",
    "\n",
    "我们来尝试一个例子，读取一些自行车的数据。\n",
    "\n",
    "bikes.csv记录了Montreal自行车路线的数据，具体有7条路线，分别记录了每条自行车路线每天有多少人经过。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# bikes = pd.read_csv(\"data/bikes.csv\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "怎么报错了？不要慌，我们Google一下这个错误是什么意思。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Date;Berri 1;Brébeuf (données non disponibles);Côte-Sainte-Catherine;Maisonneuve 1;Maisonneuve 2;du Parc;Pierre-Dupuy;Rachel1;St-Urbain (données non disponibles)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>01/01/2012;35;;0;38;51;26;10;16;</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>02/01/2012;83;;1;68;153;53;6;43;</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>03/01/2012;135;;2;104;248;89;3;58;</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>04/01/2012;144;;1;116;318;111;8;61;</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>05/01/2012;197;;2;124;330;97;13;95;</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  Date;Berri 1;Brébeuf (données non disponibles);Côte-Sainte-Catherine;Maisonneuve 1;Maisonneuve 2;du Parc;Pierre-Dupuy;Rachel1;St-Urbain (données non disponibles)\n",
       "0                   01/01/2012;35;;0;38;51;26;10;16;                                                                                                               \n",
       "1                   02/01/2012;83;;1;68;153;53;6;43;                                                                                                               \n",
       "2                 03/01/2012;135;;2;104;248;89;3;58;                                                                                                               \n",
       "3                04/01/2012;144;;1;116;318;111;8;61;                                                                                                               \n",
       "4                05/01/2012;197;;2;124;330;97;13;95;                                                                                                               "
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bikes = pd.read_csv(\"data/bikes.csv\", encoding=\"latin-1\")\n",
    "bikes.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这个数据读进来都揉成一团了，为什么呢？因为这个数据的格式并不是用逗号分隔的，而是用分号分隔的。所以我们要声明一下sep"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Berri 1</th>\n",
       "      <th>Brébeuf (données non disponibles)</th>\n",
       "      <th>Côte-Sainte-Catherine</th>\n",
       "      <th>Maisonneuve 1</th>\n",
       "      <th>Maisonneuve 2</th>\n",
       "      <th>du Parc</th>\n",
       "      <th>Pierre-Dupuy</th>\n",
       "      <th>Rachel1</th>\n",
       "      <th>St-Urbain (données non disponibles)</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012-01-01</th>\n",
       "      <td>35</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>38</td>\n",
       "      <td>51</td>\n",
       "      <td>26</td>\n",
       "      <td>10</td>\n",
       "      <td>16</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-02</th>\n",
       "      <td>83</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>68</td>\n",
       "      <td>153</td>\n",
       "      <td>53</td>\n",
       "      <td>6</td>\n",
       "      <td>43</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-03</th>\n",
       "      <td>135</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2</td>\n",
       "      <td>104</td>\n",
       "      <td>248</td>\n",
       "      <td>89</td>\n",
       "      <td>3</td>\n",
       "      <td>58</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-04</th>\n",
       "      <td>144</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>116</td>\n",
       "      <td>318</td>\n",
       "      <td>111</td>\n",
       "      <td>8</td>\n",
       "      <td>61</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-05</th>\n",
       "      <td>197</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2</td>\n",
       "      <td>124</td>\n",
       "      <td>330</td>\n",
       "      <td>97</td>\n",
       "      <td>13</td>\n",
       "      <td>95</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Berri 1  Brébeuf (données non disponibles)  Côte-Sainte-Catherine  \\\n",
       "Date                                                                            \n",
       "2012-01-01       35                                NaN                      0   \n",
       "2012-01-02       83                                NaN                      1   \n",
       "2012-01-03      135                                NaN                      2   \n",
       "2012-01-04      144                                NaN                      1   \n",
       "2012-01-05      197                                NaN                      2   \n",
       "\n",
       "            Maisonneuve 1  Maisonneuve 2  du Parc  Pierre-Dupuy  Rachel1  \\\n",
       "Date                                                                       \n",
       "2012-01-01             38             51       26            10       16   \n",
       "2012-01-02             68            153       53             6       43   \n",
       "2012-01-03            104            248       89             3       58   \n",
       "2012-01-04            116            318      111             8       61   \n",
       "2012-01-05            124            330       97            13       95   \n",
       "\n",
       "            St-Urbain (données non disponibles)  \n",
       "Date                                             \n",
       "2012-01-01                                  NaN  \n",
       "2012-01-02                                  NaN  \n",
       "2012-01-03                                  NaN  \n",
       "2012-01-04                                  NaN  \n",
       "2012-01-05                                  NaN  "
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bikes = pd.read_csv('data/bikes.csv', sep=';', parse_dates=['Date'], \\\n",
    "                    encoding='latin1', dayfirst=True, index_col='Date')\n",
    "bikes.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这样读进来的数据就正常了，还有一个问题，就是数据看起来有好多的NaN。dropna可以帮我们删掉一些带NA的行或者列。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(310, 9)"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bikes.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Berri 1</th>\n",
       "      <th>Brébeuf (données non disponibles)</th>\n",
       "      <th>Côte-Sainte-Catherine</th>\n",
       "      <th>Maisonneuve 1</th>\n",
       "      <th>Maisonneuve 2</th>\n",
       "      <th>du Parc</th>\n",
       "      <th>Pierre-Dupuy</th>\n",
       "      <th>Rachel1</th>\n",
       "      <th>St-Urbain (données non disponibles)</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: [Berri 1, Brébeuf (données non disponibles), Côte-Sainte-Catherine, Maisonneuve 1, Maisonneuve 2, du Parc, Pierre-Dupuy, Rachel1, St-Urbain (données non disponibles)]\n",
       "Index: []"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bikes.dropna()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Berri 1</th>\n",
       "      <th>Brébeuf (données non disponibles)</th>\n",
       "      <th>Côte-Sainte-Catherine</th>\n",
       "      <th>Maisonneuve 1</th>\n",
       "      <th>Maisonneuve 2</th>\n",
       "      <th>du Parc</th>\n",
       "      <th>Pierre-Dupuy</th>\n",
       "      <th>Rachel1</th>\n",
       "      <th>St-Urbain (données non disponibles)</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012-01-01</th>\n",
       "      <td>35</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>38</td>\n",
       "      <td>51</td>\n",
       "      <td>26</td>\n",
       "      <td>10</td>\n",
       "      <td>16</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-02</th>\n",
       "      <td>83</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>68</td>\n",
       "      <td>153</td>\n",
       "      <td>53</td>\n",
       "      <td>6</td>\n",
       "      <td>43</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-03</th>\n",
       "      <td>135</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2</td>\n",
       "      <td>104</td>\n",
       "      <td>248</td>\n",
       "      <td>89</td>\n",
       "      <td>3</td>\n",
       "      <td>58</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-04</th>\n",
       "      <td>144</td>\n",
       "      <td>NaN</td>\n",
       "      <td>1</td>\n",
       "      <td>116</td>\n",
       "      <td>318</td>\n",
       "      <td>111</td>\n",
       "      <td>8</td>\n",
       "      <td>61</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-05</th>\n",
       "      <td>197</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2</td>\n",
       "      <td>124</td>\n",
       "      <td>330</td>\n",
       "      <td>97</td>\n",
       "      <td>13</td>\n",
       "      <td>95</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Berri 1  Brébeuf (données non disponibles)  Côte-Sainte-Catherine  \\\n",
       "Date                                                                            \n",
       "2012-01-01       35                                NaN                      0   \n",
       "2012-01-02       83                                NaN                      1   \n",
       "2012-01-03      135                                NaN                      2   \n",
       "2012-01-04      144                                NaN                      1   \n",
       "2012-01-05      197                                NaN                      2   \n",
       "\n",
       "            Maisonneuve 1  Maisonneuve 2  du Parc  Pierre-Dupuy  Rachel1  \\\n",
       "Date                                                                       \n",
       "2012-01-01             38             51       26            10       16   \n",
       "2012-01-02             68            153       53             6       43   \n",
       "2012-01-03            104            248       89             3       58   \n",
       "2012-01-04            116            318      111             8       61   \n",
       "2012-01-05            124            330       97            13       95   \n",
       "\n",
       "            St-Urbain (données non disponibles)  \n",
       "Date                                             \n",
       "2012-01-01                                  NaN  \n",
       "2012-01-02                                  NaN  \n",
       "2012-01-03                                  NaN  \n",
       "2012-01-04                                  NaN  \n",
       "2012-01-05                                  NaN  "
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bikes.dropna(how = \"all\").head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(310, 9)"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bikes.dropna(how = \"all\").shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "dropna默认是删掉行，如果想删掉一列，就要声明一下axis参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Berri 1</th>\n",
       "      <th>Côte-Sainte-Catherine</th>\n",
       "      <th>Maisonneuve 1</th>\n",
       "      <th>Maisonneuve 2</th>\n",
       "      <th>du Parc</th>\n",
       "      <th>Pierre-Dupuy</th>\n",
       "      <th>Rachel1</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012-01-01</th>\n",
       "      <td>35</td>\n",
       "      <td>0</td>\n",
       "      <td>38</td>\n",
       "      <td>51</td>\n",
       "      <td>26</td>\n",
       "      <td>10</td>\n",
       "      <td>16</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-02</th>\n",
       "      <td>83</td>\n",
       "      <td>1</td>\n",
       "      <td>68</td>\n",
       "      <td>153</td>\n",
       "      <td>53</td>\n",
       "      <td>6</td>\n",
       "      <td>43</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-03</th>\n",
       "      <td>135</td>\n",
       "      <td>2</td>\n",
       "      <td>104</td>\n",
       "      <td>248</td>\n",
       "      <td>89</td>\n",
       "      <td>3</td>\n",
       "      <td>58</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-04</th>\n",
       "      <td>144</td>\n",
       "      <td>1</td>\n",
       "      <td>116</td>\n",
       "      <td>318</td>\n",
       "      <td>111</td>\n",
       "      <td>8</td>\n",
       "      <td>61</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-05</th>\n",
       "      <td>197</td>\n",
       "      <td>2</td>\n",
       "      <td>124</td>\n",
       "      <td>330</td>\n",
       "      <td>97</td>\n",
       "      <td>13</td>\n",
       "      <td>95</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Berri 1  Côte-Sainte-Catherine  Maisonneuve 1  Maisonneuve 2  \\\n",
       "Date                                                                       \n",
       "2012-01-01       35                      0             38             51   \n",
       "2012-01-02       83                      1             68            153   \n",
       "2012-01-03      135                      2            104            248   \n",
       "2012-01-04      144                      1            116            318   \n",
       "2012-01-05      197                      2            124            330   \n",
       "\n",
       "            du Parc  Pierre-Dupuy  Rachel1  \n",
       "Date                                        \n",
       "2012-01-01       26            10       16  \n",
       "2012-01-02       53             6       43  \n",
       "2012-01-03       89             3       58  \n",
       "2012-01-04      111             8       61  \n",
       "2012-01-05       97            13       95  "
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bikes.dropna(how=\"all\", axis=1).head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(310, 7)"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bikes.dropna(how=\"all\", axis=1).shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对于缺失的数据，我们未必要直接删除，可以考虑用[fillna](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.fillna.html)把这一行的平均数填上。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Berri 1</th>\n",
       "      <th>Brébeuf (données non disponibles)</th>\n",
       "      <th>Côte-Sainte-Catherine</th>\n",
       "      <th>Maisonneuve 1</th>\n",
       "      <th>Maisonneuve 2</th>\n",
       "      <th>du Parc</th>\n",
       "      <th>Pierre-Dupuy</th>\n",
       "      <th>Rachel1</th>\n",
       "      <th>St-Urbain (données non disponibles)</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012-01-01</th>\n",
       "      <td>35.0</td>\n",
       "      <td>25.142857</td>\n",
       "      <td>0.0</td>\n",
       "      <td>38.0</td>\n",
       "      <td>51.0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>10.0</td>\n",
       "      <td>16.0</td>\n",
       "      <td>25.142857</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-02</th>\n",
       "      <td>83.0</td>\n",
       "      <td>58.142857</td>\n",
       "      <td>1.0</td>\n",
       "      <td>68.0</td>\n",
       "      <td>153.0</td>\n",
       "      <td>53.0</td>\n",
       "      <td>6.0</td>\n",
       "      <td>43.0</td>\n",
       "      <td>58.142857</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-03</th>\n",
       "      <td>135.0</td>\n",
       "      <td>91.285714</td>\n",
       "      <td>2.0</td>\n",
       "      <td>104.0</td>\n",
       "      <td>248.0</td>\n",
       "      <td>89.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>58.0</td>\n",
       "      <td>91.285714</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-04</th>\n",
       "      <td>144.0</td>\n",
       "      <td>108.428571</td>\n",
       "      <td>1.0</td>\n",
       "      <td>116.0</td>\n",
       "      <td>318.0</td>\n",
       "      <td>111.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>61.0</td>\n",
       "      <td>108.428571</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-05</th>\n",
       "      <td>197.0</td>\n",
       "      <td>122.571429</td>\n",
       "      <td>2.0</td>\n",
       "      <td>124.0</td>\n",
       "      <td>330.0</td>\n",
       "      <td>97.0</td>\n",
       "      <td>13.0</td>\n",
       "      <td>95.0</td>\n",
       "      <td>122.571429</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Berri 1  Brébeuf (données non disponibles)  Côte-Sainte-Catherine  \\\n",
       "Date                                                                            \n",
       "2012-01-01     35.0                          25.142857                    0.0   \n",
       "2012-01-02     83.0                          58.142857                    1.0   \n",
       "2012-01-03    135.0                          91.285714                    2.0   \n",
       "2012-01-04    144.0                         108.428571                    1.0   \n",
       "2012-01-05    197.0                         122.571429                    2.0   \n",
       "\n",
       "            Maisonneuve 1  Maisonneuve 2  du Parc  Pierre-Dupuy  Rachel1  \\\n",
       "Date                                                                       \n",
       "2012-01-01           38.0           51.0     26.0          10.0     16.0   \n",
       "2012-01-02           68.0          153.0     53.0           6.0     43.0   \n",
       "2012-01-03          104.0          248.0     89.0           3.0     58.0   \n",
       "2012-01-04          116.0          318.0    111.0           8.0     61.0   \n",
       "2012-01-05          124.0          330.0     97.0          13.0     95.0   \n",
       "\n",
       "            St-Urbain (données non disponibles)  \n",
       "Date                                             \n",
       "2012-01-01                            25.142857  \n",
       "2012-01-02                            58.142857  \n",
       "2012-01-03                            91.285714  \n",
       "2012-01-04                           108.428571  \n",
       "2012-01-05                           122.571429  "
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bikes.T.fillna(bikes.T.mean(0)).T.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Berri 1</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012-01-01</th>\n",
       "      <td>35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-02</th>\n",
       "      <td>83</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-03</th>\n",
       "      <td>135</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-04</th>\n",
       "      <td>144</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-05</th>\n",
       "      <td>197</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Berri 1\n",
       "Date               \n",
       "2012-01-01       35\n",
       "2012-01-02       83\n",
       "2012-01-03      135\n",
       "2012-01-04      144\n",
       "2012-01-05      197"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "berri_bikes = bikes[[\"Berri 1\"]]\n",
    "berri_bikes.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2012-01-01', '2012-01-02', '2012-01-03', '2012-01-04',\n",
       "               '2012-01-05', '2012-01-06', '2012-01-07', '2012-01-08',\n",
       "               '2012-01-09', '2012-01-10',\n",
       "               ...\n",
       "               '2012-10-27', '2012-10-28', '2012-10-29', '2012-10-30',\n",
       "               '2012-10-31', '2012-11-01', '2012-11-02', '2012-11-03',\n",
       "               '2012-11-04', '2012-11-05'],\n",
       "              dtype='datetime64[ns]', name='Date', length=310, freq=None)"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "berri_bikes.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Int64Index([6, 0, 1, 2, 3, 4, 5, 6, 0, 1,\n",
       "            ...\n",
       "            5, 6, 0, 1, 2, 3, 4, 5, 6, 0],\n",
       "           dtype='int64', name='Date', length=310)"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "berri_bikes.index.weekday"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/zeweichu/anaconda3/envs/py36/lib/python3.6/site-packages/pandas/core/indexing.py:362: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
      "  self.obj[key] = _infer_fill_value(value)\n",
      "/Users/zeweichu/anaconda3/envs/py36/lib/python3.6/site-packages/pandas/core/indexing.py:543: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n",
      "  self.obj[item] = s\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Berri 1</th>\n",
       "      <th>weekday</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012-01-01</th>\n",
       "      <td>35</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-02</th>\n",
       "      <td>83</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-03</th>\n",
       "      <td>135</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-04</th>\n",
       "      <td>144</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-05</th>\n",
       "      <td>197</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            Berri 1  weekday\n",
       "Date                        \n",
       "2012-01-01       35        6\n",
       "2012-01-02       83        0\n",
       "2012-01-03      135        1\n",
       "2012-01-04      144        2\n",
       "2012-01-05      197        3"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "berri_bikes.loc[:, \"weekday\"] = berri_bikes.index.weekday\n",
    "berri_bikes.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Berri 1</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>weekday</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2984.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3075.113636</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3476.636364</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3639.340909</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3222.068182</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2308.590909</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2206.888889</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             Berri 1\n",
       "weekday             \n",
       "0        2984.400000\n",
       "1        3075.113636\n",
       "2        3476.636364\n",
       "3        3639.340909\n",
       "4        3222.068182\n",
       "5        2308.590909\n",
       "6        2206.888889"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "weekday_counts = berri_bikes.groupby(\"weekday\").mean()\n",
    "weekday_counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Berri 1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Monday</th>\n",
       "      <td>2984.400000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Tuesday</th>\n",
       "      <td>3075.113636</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Wednesday</th>\n",
       "      <td>3476.636364</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Thursday</th>\n",
       "      <td>3639.340909</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Friday</th>\n",
       "      <td>3222.068182</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Saturday</th>\n",
       "      <td>2308.590909</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Sunday</th>\n",
       "      <td>2206.888889</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "               Berri 1\n",
       "Monday     2984.400000\n",
       "Tuesday    3075.113636\n",
       "Wednesday  3476.636364\n",
       "Thursday   3639.340909\n",
       "Friday     3222.068182\n",
       "Saturday   2308.590909\n",
       "Sunday     2206.888889"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "weekday_counts.index = [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"]\n",
    "weekday_counts"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x10a694080>"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10a69b278>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "weekday_counts.plot(kind=\"bar\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>bikes_avg</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012-01-01</th>\n",
       "      <td>25.142857</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-02</th>\n",
       "      <td>58.142857</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-03</th>\n",
       "      <td>91.285714</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-04</th>\n",
       "      <td>108.428571</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-05</th>\n",
       "      <td>122.571429</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             bikes_avg\n",
       "Date                  \n",
       "2012-01-01   25.142857\n",
       "2012-01-02   58.142857\n",
       "2012-01-03   91.285714\n",
       "2012-01-04  108.428571\n",
       "2012-01-05  122.571429"
      ]
     },
     "execution_count": 92,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bikes_avg = bikes.mean(axis=1).to_frame()\n",
    "bikes_avg.columns = [\"bikes_avg\"]\n",
    "bikes_avg.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Int64Index([6, 0, 1, 2, 3, 4, 5, 6, 0, 1,\n",
       "            ...\n",
       "            5, 6, 0, 1, 2, 3, 4, 5, 6, 0],\n",
       "           dtype='int64', name='Date', length=310)"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bikes_avg.index.weekday"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>bikes_avg</th>\n",
       "      <th>weekday</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2012-01-01</th>\n",
       "      <td>25.142857</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-02</th>\n",
       "      <td>58.142857</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-03</th>\n",
       "      <td>91.285714</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-04</th>\n",
       "      <td>108.428571</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2012-01-05</th>\n",
       "      <td>122.571429</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             bikes_avg  weekday\n",
       "Date                           \n",
       "2012-01-01   25.142857        6\n",
       "2012-01-02   58.142857        0\n",
       "2012-01-03   91.285714        1\n",
       "2012-01-04  108.428571        2\n",
       "2012-01-05  122.571429        3"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "bikes_avg.loc[:, \"weekday\"] = bikes_avg.index.weekday\n",
    "bikes_avg.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "最后我们再来求平均，看看一周当中每天总共有多少自行车通过"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>bikes_avg</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Monday</th>\n",
       "      <td>2269.723810</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Tuesday</th>\n",
       "      <td>2268.123377</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Wednesday</th>\n",
       "      <td>2564.032468</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Thursday</th>\n",
       "      <td>2691.782468</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Friday</th>\n",
       "      <td>2398.610390</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Saturday</th>\n",
       "      <td>1677.600649</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Sunday</th>\n",
       "      <td>1644.593651</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             bikes_avg\n",
       "Monday     2269.723810\n",
       "Tuesday    2268.123377\n",
       "Wednesday  2564.032468\n",
       "Thursday   2691.782468\n",
       "Friday     2398.610390\n",
       "Saturday   1677.600649\n",
       "Sunday     1644.593651"
      ]
     },
     "execution_count": 95,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "weekday_avg = bikes_avg.groupby(\"weekday\").mean()\n",
    "weekday_avg.index = [\"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\", \"Sunday\"]\n",
    "weekday_avg"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x10a5a8198>"
      ]
     },
     "execution_count": 96,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10a85ac18>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "bikes_avg[\"bikes_avg\"].plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x10af11d30>"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\njBw5EoCXX36ZgoIC8vLyuPnmmxsttrr99tvJzs5m1qxZlJaWArBnzx7OOeccxo4dy9SpU9mxYweg\nZ3VvvvUmiiJQFEFKSgo2u8KPb5hHTU0NY8eOZcmSJY3GtnPnTlwuF5mZupPed999x8SJExk9ejS/\n+c1vzP2klNx5552MGjWK0aNHm8dZuXIl06dP57LLLmPEiBHMnz/frNvPysri3nvvZcyYMYwePdoc\nZ21tLddddx0FBQXk5+fzzjvvAPoiszvvvNO0cH766acBKC4uZtq0aeTl5TFq1Cg+//zzZu9xuHMd\nO3aMSy65hJycHCZMmMCWLXrTh8WLF3Pdddcxffp0Tj31VB599NGQf7vnn3+e0047jYKCAr744gtz\n++LFi3n44YcBfWXyyJEjycnJYd68eebzP/7xj5k4cSLDhg3jr3/9a5vfx6b21KE+E8EUFhZy5pln\nMnbsWGbPnk1xcXHYcQohmD59Ou+9917I39+ifRzZU0lKhouUjNCGU/2GZVC8twpVjV951WyQ0ZX/\nxo4dK5uyffv2Zts6G0VRZG5urhw+fLhMS0uTGzZskFJK+emnn8qkpCS5d+9eKaU+1gsuuEB6vV4p\npZQ/+clP5IsvviillBKQL7/8spRSyvvuu0/+13/9l5RSypkzZ8qdO3dKKaVcu3atnDFjhpRSygUL\nFsjn//p3eay4RkopZXJysvR6/LJkX6VMTk4OOc7nnntO3nHHHebjCy+80Dz/448/br5u6dKl8gc/\n+IH0+/3yyJEjcsCAAfLw4cPy008/lWlpafLgwYNSVVU5YcIE+fnnn0sppRw0aJB89NFHpZRSPvHE\nE/L666+XUkp59913y7///e9SSimPHz8uhw0bJmtqauTTTz8tf//730sppXS73XLs2LFy79698uGH\nH5b333+/lFJKv98vq6qqmv0e4c516623ysWLF0sppVyxYoXMzc2VUkp57733yokTJ0q32y1LS0tl\n9+7dzb+BweHDh+WAAQPk0aNHpcfjkZMmTTL/Bvfee6986KGHpJRS9u3bV7rdbvP3MZ7PycmRdXV1\nsrS0VPbv318WFRW16X0888wz5fr16yN+JhYsWCD/8Y9/SK/XKydOnCiPHj0qpZTy9ddfl9dee23Y\ncUop5csvvyxvvfXWkJ+PSHTE9+zrzw7Jdx/fJCtL62J+7M5G0zT5/K/+Iz/869dh99m1oUQ+fvMK\nWby3ohNHpgNskFHE2BNDuvnXXXDk69ges89oOPd/Iu4SzqYYoKCggMGDBwOwYsUKCgsLGT9+PKB7\n5PTq1QsARVG44oorALjqqquYO3cuNTU1rF69mssvv9w8l8fT0INSU2lkS9ySRXFxcTE9e/Y0H3/x\nxRe8+eabAPz4xz/mV7/6FQD/+c9/+NGPfoTNZqN3796ceeaZrF+/nrS0NAoKCujfvz8AeXl57Nu3\njylTpgAwd+5cAMaOHctbb70F6J78y5YtMzNit9vNgQMHWL58OVu2bDG15srKSnbt2sX48eO57rrr\n8Pl8XHLJJaaHUFNCnes///mP+fvMnDmT8vJyqqr0ya/zzz8fl8uFy+WiV69elJSUmL8HwJdffsn0\n6dPN9+eKK65g586dzc6bk5PD/PnzueSSS7jkkkvM7RdffDGJiYkkJiYyY8YM1q1b1+b30SDUZyKY\nb7/9lq1bt3LWWWcB+l1S3759I46zV69eHD58OOR72tl8u7aYI3urWLJrHdOvGsGwcb27ekhtpvqY\nm9oKD32GpIfdp9+wBp2+z+Dm8k48cGIE+jgg2KYYaGRHLKVkwYIF/L//9/9aPI4QAk3TSE9PNy8i\nwdhsNlS/H8WuoGkaXq9Xl3FsCoQppU9MTKSysvHqvNY2fna5XI3G4Pf7mz0XvF1KyZtvvsnw4cMb\nHUdKyWOPPcbs2bObnWPVqlW8//77XHPNNdxxxx1cffXVYcfRdAxtGXdreP/991m1ahXvvvsuDzzw\nAF9/rScWTd/Hlt7Xtoyn6TGllGRnZ7NmzZqoxmm323G73SQmJrZ4ro5GUzXKDtYwZExPais8LH92\nGwe3H2PqFafhcLXd9K+rOLI3vD5vkJTmJKNPEod3VTBm9qDOGlqriEqjF0LsE0J8LYTYJITYENjW\nXQjxkRBiV+D/jMB2IYR4VAixWwixRQgxpt2jPPd/4Nr3Y/uvhWy+KcE2xU2ZNWsWS5cuNa2Kjx07\nxv79+wHQNM3Mbl999VWmTJlCWloagwcP5h//+Aegf7E3b94MwKCBg9jy9SZsdsGyZcvw+XwA5sKp\nUJx++uns3r3bfDx58mRef/11AF555RVz+9SpU1myZAmqqlJaWsqqVasoKCho1ftgMHv2bB577DFT\ng964caO5/cknnzTHvXPnTmpra9m/fz+9e/fmxhtv5IYbbuCrr76K+lxTp041f4+VK1eSmZlJWlpa\nC6/SOeOMM/jss88oLy/H5/OZ73kwmqZx8OBBZsyYwYMPPkhlZaVpRvfOO+/gdrspLy9n5cqVjB8/\nvt3vY6jPRDDDhw+ntLTUDPQ+n49t27ZFHOfOnTsZNWpU1GPoKI6X1OH3aQzOyWTOz8cw7rwsvllT\nzBt/WE/pwequHl6rObK7ErvLRo9TkiPu129YOsW7K9C0+FzY2JrJ2BlSyjwp5bjA47uAFVLKYcCK\nwGOAc4FhgX83AU/GarCdjWFTnJeXxxVXXGHaFDdl5MiR3H///Zx99tnk5ORw1llnmZNnycnJrFu3\njlGjRvHJJ5+YVSqvvPIKf/vb38jNzSU7O9uczLzm6utY/eUXnDFpHGvWrDHvHGx2BQkhzc2mTZvG\nxo0bzef+/Oc/88QTTzB69GiKiorM/ebMmUNOTg65ubnMnDmTP/7xj/Tp06dN782iRYvw+Xzk5OSQ\nnZ3NokWLAL2McOTIkYwZM4ZRo0Zx88034/f7WblyJbm5ueTn57NkyZKQzp/hWLx4MYWFheTk5HDX\nXXfx4osvRv3avn37snjxYiZOnMjkyZM5/fTTm+2jqipXXXUVo0ePJj8/n4ULF5Kert+O5+TkMGPG\nDCZMmMCiRYvo169fu9/HcJ8JA6fTydKlS/nVr35Fbm4ueXl5rF69OuI4P/30U84///yox9BRlB3Q\ng3nmwFQUm8IZF53KxT/Lx+f2s/TBDWz59FAXj7Axfp/KZ699y6Edx0I+X7y3kj6D0/Q76gj0G5aO\n161Sfqgm4n5dRjRCPrAPyGyy7Vugb+DnvsC3gZ+fBn4Uar9w/+J1MrYrqK30yJJ9ldLvU0NuV/1q\nyNctXLhQfvTRR50xxO8NwZO18cyRI0fkzJkz2/TaWH/PVi35Vj5166dSVbVG2+uqPfK9xzfJx29e\nIQ98Ux7Tc7aHgzuOycdvXiEfv2WFXPP2bukP+n556n3yiVtWyLXv7GnxONXH3PLxm1fIjR/t78jh\nNoMoJ2OjzeglsFwIUSiEuCmwrbeUsjjw8xHAmHE5BTgY9NpDgW2NEELcJITYIITYEKq87PuK6tcQ\nQqDYGuu2RnPwcE1I7rnnHurq6jp8fBbxx4EDB9rUfL4jKD1QTeaAFBSl8ec3McXJ7JtGkdo9gS+W\n7o4biaMsICcNG9uLwn/v5+2Hv6KqrB6Aku+qkDKyPm+QkuEirWdi3PreRDsZO0VKWSSE6AV8JITY\nEfyklFIKIVr1l5NSPgM8AzBu3Lj4+KvHAYaZWdMJupbsinv37s1FF13U4eP7PrF48WLzZ6lJ6qq9\nJKY4WryN72yMaq+uRmqSsoM1jJgQWsayO2xMnDOE5X/bxrdrizl9Ur9OHmFzyg/VkNTNydk3jGJw\nXgkrX97Bkvv1aqHjR+pAQO9To6uk6TcsnX2byzp4xG0jqk+slLIo8P9R4G2gACgRQvQFCPxvNE0t\nAgYEvbx/YJtFFBj2xE2x7Iq7Fnedj9oKD153/DeZ6CoqS+vxeVR6DkoNu8/Qcb3oPTiNte/sxefp\n+vey9FANmf318Q4b15srflNARt9klj+7jU0fH6BHv2RcidHlwxm9k3DX+uLi92pKi4FeCJEshEg1\nfgbOBrYCy4AFgd0WAO8Efl4GXB2ovpkAVAZJPBYRkFKi+mXIQH8imJudrEgpqa/Sq4jiRXKIR44e\n0Nc29BwYPtALIZh82TDqKr1s/OhAZw0tJKpf43hxLZn9G7yH0jITmfOLMYw9dxA+j8opw6P3cEpI\ncQBQX+2N+VjbSzSXqt7A2wEpwQ68KqX8txBiPfCGEOJ6YD/ww8D+HwDnAbuBOuDamI/6JEVTJUhp\nyjRNsQXMzSw6F59Hxe/TszRpBfqwlB6owWZXyOgbuRSx75BuDBnTk43L95M9pR/J6a6I+3cUx4/U\noqmSzAGNTeZsNoUJFw/h9El9SUx1Rn28pMC+9TU+0jK7fk1DMC0GeinlXiA3xPZyYFaI7RL4r5iM\nLs5ZsmQJWVlZnHHGGTE5npGtK2FWwtodCl63ipSy1QuiLNpOfbUPoQi9gsEK9GEpPVBNj1OSsUUx\nhzFxzhC+21zGl8v2MvPq5iWvnUHZQb0UMjijD6Zbz9YZxCWkxm9GH1+zSnHIkSNHmDdvHkOGDGHs\n2LGcd9557Ny5k3//+98UFRXx/PPPc+iQXhu8b98+Xn311Vaf49tvv2X69OmMKxjLlFnj+a///knI\n/Wx2BaTk0MEiLrvsshaP+4c//KHVYwFYt24d06ZNY/jw4eTn53PDDTdErOjZtGkTH3zwgfk42Cys\nrQTb+nYlql/DU+fTJ2EVYUk3YZBSUnawOqJsE0y3nkmMntGfb9YUU3aoaxZSlR2swe5Q6NYrNo6f\niSmBjL7aF5PjxRLLAiECUkrmzJnDggULzJWmmzdvpqSkhHPOOYdzzjmn0f5GoL/yyitbdZ6FCxdy\n++23M2vabOqqvByp3BdyP0PS6d2zT1S+5X/4wx+45557WjWWkpISLr/8cl5//XXTV3/p0qVUV1eH\ntcDdtGkTGzZs4LzzzmvVucKhqmqH2vq2hvoaPTtLTHHiqfMjLeUsJFVlbjx1/qgDPcC4c7PYsaaY\nL5bu5qLb8hrdpUpNcmjncfZ+VcrIKf1addxoKSuqpkf/5qWgbSXRyOhrrIz+hOLTTz/F4XA08i3P\nzc1lypQpIW1q77rrLj7//HPy8vJ45JFHwlr2NqW4uJj+/fubE7E5OTmAfuGYOnUqY8aMYcyYMXy5\nbi0Ae/bsNZe7v/DCC8ydO5dzzjmHYcOG8ctf/tIci7Gyd/78+UBkK2WDJ554ggULFjRqnnLZZZfR\nu3dv1q1bx8SJE8nPz2fSpEl8++23eL1efvvb37JkyRLy8vLM92L79u0h7YPDjSElJYWf//zn5Obm\nsmbNmka2vikpKfz6178mNzeXCRMmUFJSAkBpaSmXXnop48ePZ/z48Y0siGOB1CTuah/ORLve7UsR\nlnQThtLAitjWBOSEZAfjzxvMoR3H2b+1HIDaCg8b/rWPl3+7hmV/2sTWVUXsLjzawpFaj34HUhNW\ntmkLDpcNm13BHYcZfZdbFMs4Xhn75z//Wf7sZz9rtj2STe35559v7hfOsrcpzz33nExLS5OzZpwl\nH7jvf0z72draWllfXy+llHLnzp1y7Nix8uj+Kvn1xh0yOztbSinl888/LwcPHiwrKipkfX29HDhw\noDxw4ICUUjayNY5kpRzMnDlz5D//+c+Q70dlZaX0+XxSSik/+ugjOXfuXHMMhtWulOHtg1uyc16y\nZIl5jKa2vsuWLZNSSnnnnXea7+mPfvQj0wZ4//79csSIESHH3VbqqvXVyJ46/Xc+fqRWlh+uiek5\nuppYfc9Wv71b/uUnn0i/N/TK7XD4far8+29Wy78vWi3fe2KzfOKWFfLxm1fIt/+vUH77ZbF85mef\nyc9e+zYmYwymqrxePn7zCvn1yoMxPe4Ld/1HfvzCtpgeMxKcTDbFD657kB3HdrS8YysY0X0Evyr4\nVZteG8mmNphwlr2GvbHBtddey+zZs/nHq/9k+Yp/8dKrz7N582Z8Ph+33normzZtwmazsXPnTr3b\nVJPKm1mzZtGtm76oY+TIkezfv58BAwY02ieSlXK0VFZWsmDBAnbt2oUQwjQuC0Uo++BIY7DZbFx6\n6aUhj+V0OrngggsA3b74o48+AuDjjz9upONXVVVRU1MTk9aJUkrqq33YHAqOBN3fSCgCaZW3hqT0\nQDXdT0kOWzEWDptdYdKlQ/nXU1/jc6vknz2I0yf3JT2gm695ew8+d9scSSNRFvCkyRwQW0koMdVJ\nfU38ZfQnRKDvKrKzs9vUw9NAhrHs/fWvf837778PYFoV9+ndhx9dfhU33ng9BZPHsnXrVt599116\n9+7N5s2b0TSNhIQEvZa+SSebaKxxZRgr5bfffpv77rsP0NvdZWdnU1hYyMUXX9zsGIsWLWLGjBm8\n/fbb7Nu3j+nTp4f93UONKdwYAP13C2EYB+BwOEz9Nvj30zSNtWvXkpAQuvNPe/B7VfxelZTuCea5\nhRLaVO77jpSS0gPVDM7JbNPrT83ryZWLzyCtZ2Kzih1Hgr1DFiCVHawGAd37RS4FbS2JKQ7qq+JP\noz8hAn1bM+/2MnPmTO655x6eeeYZbrpJt/jZsmUL6enpLFmyhAULFnDs2DFWrVrFQw89RFFREdXV\nDRUEhmXvzJkzcTgc7Ny5k1NOOYUHHniABx54wNzv3//+N9OmTAfgaPlRysvLOeWUU6isrKR///4o\nisKLL76IqqrYHdEvmnI4HPh8PhwOB7NmzeLiiy/m9ttvp1evXhw7dozq6mrmzJnDnDlzzNcMGDCA\ngoICzj//fLNs9K233mLy5MlUVlZyyim6bdELL7xgviY1NbXR7x2OcGMYNKhtHt5nn302jz32mNks\nfdOmTWEbmrSWuiofQggSkh3mNr3qJiaHP6moOe7BXeNr14RpRp/QAdfhsuHtiEB/qIZuPRNxJsQ2\nBCakOjheEn+eU9ZkbASEELz99tt8/PHHDBkyhOzsbO6++26uvPLKkDa1OTk52Gw2cnNzeeSRR8Ja\n9jZl+fLl5I3JYcY5k7nokgt46KGH6NOnDz/96U958cUXyc3NZceOHSQnB90aR5FY3nTTTWZHokhW\nysH07t2b119/nV/84hcMHz6c008/nQ8//JDU1FR++ctfcvfdd5Ofn9/o95gxYwbbt29vNBkbimjH\nEC2PPvooGzZsICcnh5EjR/LUU0+1+VjBGCWVCYGSSgOhCLBq6ZvRlonYaHEm2PB1gO1EWZD1QSxJ\nTIlP6UbEw63ouHHjZHDjZIBvvvkmpHf4yUptpYfaCg+ZA1Ijlnv5PCrHj9TSrWciriRH2P0s2k5t\nhYfaSg/d+yVjdzTISXXVXmqOuenRPyWqRUEnArH4nn25bC+F/9rHjX8+E4cztl2kPnhyC1Vl9cxb\nFJtFiQDeej9/vX0VZ1x8KuPOzYrZcQEK/72Ptf/cy82Pnok9xu9FKIQQhbKhR0hYTo5P60mA6tf0\nloEt1PQaGb1lhdAxSCmpr/HiTLA3CvKA+bexMvrGlB6sJqNvcsyDPIAjwRZzjb6sKPKK2PaQGGSD\nEE9YgT5OUH1aVBULev9YYZmbdQB+r0pVaT2aKklMa+5xYqznsRZNNaZ0f/QrYluLw2WPuWOo0QWq\nY6Sb+LRBOCEmY78PqH6JMyG6jMhmVyy74hji96rUVnrx1OkTsMndXCH/FiKQ0Vs2CA3UVnqoq/LS\nM8ZligZOVwdk9AerSUhxkJwevWFZtJgZfZwtmrICfRwgNYmmatjs0WnuNoeCty72tcXfN5oG+KQ0\nJ0lpzrCNRSzppjnmRGwED/r24Eiwofo0NFWLWcMXfSI2pUOMAU2r4jizQbCkmzjAqIs32gW2hM2u\noAUuDhZto77Gy7HiWrz1fpLSnPQ4JZmUjISIwURYgb4ZpQf0evSO0LtBL68EYpbVa6pG+eHaDhtv\nkpXRW4TDkGHC2RM3paGtoETp+In9kxJ3rb7qNaN3UtSZoiXdNKf0QDXpvZJiXo9uYAR6r1uNSZVZ\nRUk9qk+L+YpYA0eCDcUucFsZ/YmDEIKrrrrKfOz3++nZs6e5HD8cGzZsYOHChVGfR/XrgSPa5eO2\nQOPwrsjoH3/8cYYOHYoQgrKy+OyP2RJSSvweDafL3io5oGEy1gr0BqUHOm4iFjAvILHK6A1L5I7K\n6IUQJKY4qbMy+hOH5ORktm7dSn19PYmJiXz00UfmytBIjBs3jnHjWixtNVH9GkK0XFppoCh6cOqK\nzHLy5MlccMEFEe0P4h3Vr+lGT67W5TlCiICDZQcN7ASjvtpLzXFPhwZ6U7qJUeVN2aEaFLsgvU9s\nPOhDkZjqwB1nVTdWRt8C5513nulL89prr/GjH/3IfC6UbS/AypUrzaz/s88+Iy8vj7y8PPLz86mu\nrkZK2cjm+B9L38BmV/jss8+YPn06l112GSNGjGD+/Pmmt0pWVhb33nsvY8aMIW9MLrt270RTJbW1\ntVx33XUUFBSQn5/PO+/orXtfeOEFbr31VnOsF1xwAStXruSpp54yLQOa7heNjXF+fj5ZWVkxfIc7\nH79Hj9RtqftWAp2mLDp2RayBYSjn88Sm+KDsUA09+nXsgrfEFIdVR3+iMW/ePF5//XXcbjdbtmxp\n1DZwxIgERPk9AAAgAElEQVQRfP7552zcuJHf/e53IZt8PPzwwzzxxBNs2rSJzz//nMTERN566y02\nbdrE5s2b+fjjj/ntfb/maNkRADZu3Mif/vQntm/fzt69ext5rGdmZvLVV1/xk5/8hCeffQzNL3ng\ngQeYOXMm69at49NPP+XOO++ktrY27O9z6aWX8vbbb5uPlyxZwrx58/jmm29YsmQJX3zxhemW+cor\nr8TiLYw7fF5Vb7beSqdF0HV6S6PXKT0YCPQDOkYGgcYafSwoO1jdYbKNQUKK06qjbwtH/vAHPN/E\n1qbYdfoI+kTRfSknJ4d9+/bx2muvNeugFI1t7+TJk7njjjuYP38+c+fOpX///s1sjidNmMLGzV/R\nd0BPCgoK6N+/PwB5eXns27ePKVOmADB37lxAt+pd8to/0FSN5cuXs2zZMrN1n9vt5sCBA2F/n549\ne3Lqqaeydu1ahg0bxo4dO5g8eTJPPPFEu22MTxT8XhW7U2lTeZ3VfKSB0gPVpHWwFUcsNfraSg/1\n1T56dHCgT4pDq+ITItB3NRdddBG/+MUvWLlyJeXl5eb2aGx777rrLs4//3w++OADJk+ezIcffhji\nDNKc6ItkOWw8Z7PZUFUVVdWbCrz55psMHz680RELCwvRgqwW3W63+fO8efN44403GDFiBHPmzEEI\nEdFC+GRCSonfq5n1zq1FUcDvswI9wLHDtWSe0rFBM5bllYYHfUfegYDuYOlzq/h9ajMbja7ihAj0\n0WTeHcl1111Heno6o0ePZuXKleb2cLa9wezZs4fRo0czevRo1q9fz44dO5g6dSpPP/20aXO85svV\n/OH+/+FQyb6oxyQEaKpk9uzZPPbYYzz22GMIIdi4caOpo//lL39B0zSKiopYt26d+do5c+bwwAMP\nsHHjRh588EEg9hbC8Yrfp0/EttWXRQhrMtbAXesz+6R2FKZGHwPppiwgNfXoAOuDYBpsEHykdo+P\nQG9p9FHQv3//kOWS4Wx7g/nTn/7EqFGjyMnJweFwcO655zJnzpxGNseL7rqPvn37tm5QQm+88Zvf\n/Aafz0dOTg7Z2dksWrQI0CWjwYMHM3LkSBYuXMiYMWPMl2ZkZHD66aezf/9+CgoKgOgthB999FH6\n9+/PoUOHyMnJ4YYbbmjduLsYv1cPGK2tuDGwpJsGvPUqrqSOzRWNC7I3BpOx5YdqSO2RgCuxY8ds\n2CC440i+sWyKuxhNk5QdrCYlw0VSmqvlFwSoq/JSc9xNZv+UmC0N/z5QXe7GXesjc0DblsAbFsY9\nB6Z2yBL6zqat3zO/T+Xp//6MCZecythzsmI/sCCevu0zsqf2Y8plw9p1nFcXryW9dxLn/SQnRiML\nTfHuCt56+Csu/O9cBmb36NBzWTbFJwhGdtjaoKGYi6a6/kJ9IuHzqthdtjYHacsGQccT8Frq6OwY\ndJ2+vdKNz6tSUVLXYStig4lHq+KoA70QwiaE2CiEeC/weLAQ4kshxG4hxBIhhDOw3RV4vDvwfFbH\nDP3kwAz0US6WMrACfeuRmsTvVXE4257fiMBLv+8tBb31eqB3drB0A7FxsDxWVIuUHbciNhhj3iKe\nSixb84m/Dfgm6PGDwCNSyqHAceD6wPbrgeOB7Y8E9rMIgyGdtTXQN20UbhEeo1lLezr/WA6WOh4j\n0HeQx00wjgQbPnf7NPrjJfraku59Y9sMPBTORDuKTcSVsVlUgV4I0R84H3g28FgAM4GlgV1eBC4J\n/Hxx4DGB52eJk0HM7CCMzLC175Chy1sZffT4AhOxRsleW7CkGx3DJrsz2lk6YpDRG1JTcLP3jkII\nQUKKI66siqPN6P8E/BIw0sceQIWU0rjMHgIME5hTgIMAgecrA/tbhMAIGNH63BgoikAIYQX6VuD3\nqIhAh662Ygb6OChi6EqMjL5zNPr2d5ky7ggciZ1T7piY4jyxMnohxAXAUSllYSxPLIS4SQixQQix\nobS0NJaHPqEwpZsQKb3Hp1JRFz4rUGxWoG8NPq+Kw9n2iVgARVhWxRCk0XdCoHfGoG+st17F7lA6\nral7YqojrqyKo/mtJwMXCSH2Aa+jSzZ/BtKFEMZfuT9QFPi5CBgAEHi+G1BOE6SUz0gpx0kpx/Xs\n2bNdv0RH0Rk2xcbiGxHiL1Fa4+HgsXq0MNmjHug7V6OfP38+w4cPZ9SoUVx33XUhbR/iEU2TqD4N\neztkG2j4O33fpRuz6qYTJmP1qpv2afQet79TLkoGiaknWEYvpbxbStlfSpkFzAM+kVLOBz4FLgvs\ntgB4J/DzssBjAs9/Ik/Q+9xgm2KgVTbFjz76aFTniFR141MlEokvTCNwxaZ0ekY/f/58duzYwddf\nf019fT3PPvtsp56/rRgLpdpTcQPBzUfaPaQTGm+9H0UR2Nv5fkaDIwYZva++kwN9iuOErbppyq+A\nO4QQu9E1+L8Ftv8N6BHYfgdwV/uG2LV0tE1xwaSxvPPeWwghWLlyZSOb4oU3X4uUEo+qNbIpHj16\nNDt27ECxCaqra7j22ms7zab4vPPO033ZhaCgoIBDhw7F+B3vGMwVse2ouAHM3/17n9EHAmdn1FkY\nk7HtyRc99WrIhu8dRWKqA69bNbvHdTWtCvRSypVSygsCP++VUhZIKYdKKS+XUnoC292Bx0MDz+/t\niIF3Fh1tU7zszfe47w+LTLsBw6Z427ZtHNi3j43r1+INZPTBNsUPP/wwNpvgkcceYsaMzrcp9vl8\n/P3vf+ecc85p9XvaFfg8enNpW5TtGiNh2SDo0k1n1NCDXsIpZUN5bFvwxVC6WVp4iJfX7o+4T0JK\nfC2aOiFMzT5/YydlB2tieszMASlM/eFpLe7X0TbFmZm6TfH69etJS0szbYr9msbwkaM4fOgAnkCg\nD7Ypfuutt1BsCp99/gkrVn7I//3f/wKdZ1P805/+lGnTpjF16tQW38N4oL0LpYJRrECP1+3vlIob\naNxlqq1mdJ56P+mpsekq9dgnuyiv8XLZ2P4khHGnNJuE13hJyYje2qSjOCECfVfTkTbFUkoIuvs1\nrIh9folis6H6VTOjD7Yp9vv9KDbdXvi115YwOie70XE70qb4vvvuo7S0lKeffrrFfeMBTdVQ/W23\nJm6KUKyqG29d52nejbtMOdt0DK/bjzMGpZWl1R72l9cB8PmuMs4a2TvkfgmB1bHuOJmQPSECfTSZ\nd0fSkTbFpUePsmbtFzz6+CPs2NHQXMUXqKax2wQef+iJKMUmmD5tFk888QRPPvVEp9gUP/vss3z4\n4YesWLHC7F0b7/i97V8RG4xQrLJWT72f9N4d13c1mFh0mfLWqzFZxfvVgeOAvsDxX18Xhw30hlVx\nXZxMyJ4Y39QupiNtii++/Hzu++399OnTp9HrjEDvsisRqm4Edyz8JT6vt9Nsim+55RZKSkqYOHEi\neXl5/O53v4viHexafDGquDFQrHaCeOs7T7pxutrXZUpKGcjoYxDo9x/HYRNcmNOPj7aXhE3C4s2q\n2LIp7mLKi2pwuGykZSY22l5cWU9ZjZdT0hM5dLyO4b1TcTXRA6WUlB2sITHFQUr3hM4c9glFZWkd\nfq9Gjxh1Q6o+plsd94yxE6KmSTy1PhJSHJ1mgdzW79kzt33GyCn9mHJ5+6yDo+HI3kre/GMhF9ya\ny6BRrV9k73X7+evPVjFp7lDyzx7YrrFc9uRqVClZOGsY1z6/nr8tGMes05tn9VKTPHnrSsacPZAJ\nlwxp1zkjYdkUnyBomgz5pfapEodN4ApUiXhCZPVC6Mv51e+5jNASPo8WM9kGGqpuYp0keev9VB9z\nm4uR4hVN1fB5Or7piEGDdNO298Vbr2fd7dXoPX6VLUWVjB2YweQhmaQl2Hn/6+Z3vaB/RhJTHHFT\ndWMF+i5GytCrYn1+DYdNiRjoIbA69vu+eicCqqqhqRqONnaUCoUxNRHrm2FD94+X2/1wGFp5p03G\ntrNvrHGBaO94tx2uwuvXGDsoA6dd4ayRffhoe4lZLNGUxNT4WTRlBfouRGoSpAyzKlbDaVOwKQKb\nIsJ+mBSbQPNbGX04/J7YLJQKpqMcLI3jed1+1DB/73igM5uOQIMVclubj3hjZKn81X59InbMoAwA\nzs/pQ7Xbzxe7y0LunxBHxmZWoO9CwhmaSSkD0o2CEAKnXYlQedP5NggnErGuuIGGv1esJ2SDj+eu\njY8AEYrONDSD4PLKrs3ovzpwnP4ZifRO0+fDpgztSWoE+SYxNX6siq1A34VoYQzNDI8bh10PKC6b\nLWJGL6X83leBhMPnVbE5lFbbQEeio5qPaKrEZldwuGy4a3xxa4VsWhR3kkZvsysoNhGoo289pkbf\nDgsEKSWF+48zNpDNAwH5pjfLtx0J+f1MTHHGjQxnBfouJFx3KaO00hmwVHU6FHyqFtLFsqGlYPze\n6nclql/D7ojtx7wjpRuh6E0rVL/WbiOvjsJoOtKZJmF6l6muy+iLKuopqfI0CvQA543qS5Xbz+o9\nzeWbxFQHnjp/XHSBswJ9lCxevJiHH3446v337dtHYmIieXl5jBw5kltuuaXZpKnZdESEDvSOQKB3\n2RUkhMwarE5TkTGCZyzpKKtiTZMoNoErSS+vjJdssCmeen1cnaXRgz4h622rdBMDqanQ0OcHNg70\nU0/LJNVl54MQ8k081dJbgb4DGTJkCJs2bWLLli1s376df/7zn42eD2dR7PGraJrWEOgD/4cK9Dar\nSXhEpNb67l0toXSQVbGmSRRFoCgCV5IdT50/LiU5QwrpLOkG9InUNmv0gUDfnhaSX+0/TpLTxog+\njddOuOw2fjCyN8u3l5gJmoGxOjYeKm+sQB+BBx54gNNOO40pU6aYFsQA06dPx1jgVVZWRlZWVsTj\n2O12Jk2axO7du6mpqWHWrFmMGTOGsePz+dfy9xFCvwMYPnw4V199NdMKxlJ6pIiPln/ImDFjmFAw\nlhvnXRyyxFKxAn1YpNRr3WOf0XdMO0GpNow1IcWhW1TXtS0b9HnVNtedt4QxJkcnNAY3aE/zEW+9\niiPB1q4LfuGB4+QNSMceokPVeaP7UlHnY82exv2VElONQG9l9HFLYWEhr7/+Ops2beKDDz5g/fr1\nbT5WXV0dK1asYPTo0SQkJPD222/z1Vdf8a/3l7P4gV+bpma7du3ipz/9KR/+Zz1pySnceOONvPnm\nm2zZvJlHnn4xZOWN2QgjDnTAeCNSU5f2YHrSx/DialyUjAu3w2XDZlfafNtfc8xNZWl9h9wReOr9\nONsZOIPRNMm7mw+HrSyD9jUI97r97SqtrPX4+aa4upk+bzB1WCYpIeSbBqvirs/oTwhTs09feIaj\n+2Nra99r0KnMuOamsM9//vnnzJkzh6Qk3bjpoosuavU59uzZQ15eHkIILr74Ys4991x8Ph/33HMP\nq1atAik4cqSYo6VHARg0aBATJkxgZ0k1X2/awLRp0xg8eLA+3p6ZIaUbfXWsVWIZCi3MHEgsEAph\nWzy2BePvZwRPIfRJ2doKD36fij2MHW7IY2nSDIqeOh+JKW1zfAyHtz62XvSf7y7jv1/byD3njeCm\naaHtAhwuG3VVbQuY7fW52XyoAlWTZv18UxIcNmad3osPtx3h95eMMiXXeMroT4hAH2/Y7XZzYjXY\n/rcphkYfzCuvvEJpaSmFhYV4ajVGjjoNj8eNEILk5GRAn4y1N8mWXHaF2jDlZVaT8NBE6sfbXmLd\nfCTU3UdCsh7o3bU+UtKjD/RGNy2EHmRiHeg9dbE1NDMqVp77zz6umTQYZ4jmMO3V6NtTWmkulBoQ\nOtCDLt+8s+kwa/eWM3WY3gM7IcmBEPExGXtCBPpImXdHMW3aNK655hruvvtu/H4/7777LjfffDMA\nWVlZFBYWUlBQwNKlS1t13MrKSnr16oXD4WD5Zx9ysOhAowVTqiZRNUnBhDNY9Mvb+e677xg8eDC1\nVRV47UnmhF0wNpvAH8crKbsKrQ3SjdevcqzWR69UV0RpQm8+0u4hmph3H0HntNkVnAl23DV+kruF\n9kQKhVGGmJzmorbSg8+jtmsisineGPdfXbv3GN0SHRypcrNs82EuG9u/2T66Rt9W6UZt14WpcP9x\nhvZKoVtS+H4GZ57Wk2SnjQ++PmIGeqNU1pqMjWPGjBnDFVdcQW5uLuecc67ZeQngF7/4BU8++ST5\n+fmUlYVe/hyO+fPns2HDBkaPHs1rr7/MsKGNvfaNmft+vXvzzDPPMHfuXHJzc/nJdT8GwBtCi7ek\nm9DIEMGzJQ5XuDlarf+LhBCxtSo2L0q2xmNNSHGgqVqrvNi9HhW706ZLB0LgjrFG7Kn344oQ9FpD\ntdvH1qJKfjxhECP6pPLMqj0hJ7nb0yDcW+9v88Sxpkk2Hqxg7MDw2Tzo8s3M0/XFU8HjT0yNDxuE\nEyKj7yp+/rNfctPVCxFC0OOUZDOjGjFiBFu2bDH3u//++5u9Nisri61btzbbnpmZyZo1a4CAfa5P\no0c/3T5369atVLsDFQ02hXPPPZdzzz0XgDqvn91Ha/D4tWbtyxRbwE2xA2rGT2RaOxlb5/VT5fZh\nVxRKq710S3SSGMY6QSgCGcO7KKmGvii5Eu0IRa+pjyYrlVLi96gkpDhQbAoJSXbctX6SM5rfCbYV\nb70fZ7/Y3CFs2HccVZNMGtKDU3smc8cbm1n5bSkzRjRuY+lw2VD9GqqqYQtR+dLSeF1tdK7cW1ZL\nRZ0v7ERsMAVZGby7+TAlVR76dNNtEnQHSyujj0s0VaOytJ6qsnrzcUdkzFJr7nNjTLg6mnyYDd3S\nG6IywSyxjMOa666ktdJNSZUHmyIY2isZmyIoqqgLW0IZ6+YjoaQbCNz+Jzvw1Pujqqzye1WklKZU\nk5gaKNOMoXeOrtHHJqNfs7ccp01hzKAMLsztR79uCTy9ak+z/dpjbOZxqzjaKN00NTKLxJBeesK2\n+2hDf+t4MTazAn0T3HU+jh2uxVPnIzndRXovvSFIRyxHl7J5luVTJQKBo8ktvF1RsCtKC7X0lk4f\njJnRRxHnaz1+qt0+eqa6cNpt9EtPoM6rUhYmGxMKMfWkl6quwYe6KCWkOEDKqHzqDYnHMAKzO23Y\nHTbqq2PjnSOl1DPkGFXdrN1bTt7AdBIcNhw2heumDGbt3mNsPljRaL+2WhVrmn6H09byysL9x0lP\ncnBqZnKL+w41A321uS0pTozNrEAfwMziS+tR7Ard+yaT3M1llrWZlQyxPKcmQxiaaThsIuTEm+5i\nadkgRIuxKjaaScySKjd2RaFHst6AvVuig7QEByVV7pB3UQ2LpmIzVi2C7GZ3KNgcSlSOlj6PbuJm\nyBtCCBJTHfh9akw+wz6PipTtt/wFqAro8xNObegaNa9gIKkJdp5Z1bic2nSwbGVGb6yKjSR7+SMk\nSIUHjjNmYEZUslfPFBdpCXZ2lwZl9KlOPLXR3Y11JFagD1BZWq9n8d1cZPRJMm1thSKwO21m39FY\nElK6UbVmso2By66E8bvRj2F1mmpMpOAZTI3HT43HT89UF7agOvZ+6frdXFGFu1k2HGsHy1DVVAZC\nCBKSHPg8akSfeillyAobV7LunRMLCcH0oo+Q0R86XtcsIw/F+u+OoUmYGBToU1x2rpowiH9tLWZ/\nea253ewy1UoHS2N1sCNMeWVJlZvRi5dz40sbKKqob/RcRZ2X3UdrotLnQf87De2V0ki6MW0QurjE\n0gr0NLRGS+7mIjnd1Sz4Opw2/B4t9kveQyzP96kajhB1xKBn9D5Va6YNWzYIoYlmclpKSUmVG4dN\noUdy43pzp12hT7cEqt0+Kuobf1Fj7WAptYZVsaEwAmsk+cbv05CaNJtpGyiKICHZjruu/ZllNAZh\ni5dtY/6zX4Zd92Gwdm85TrtC/sD0RtuvnZSFXVF49vPvzG3ONnrSG3cA4TL6zQcrqPepfLLjKD/4\n3894+rM9ZuXbxgP6xaqpkVkk9EDfcIGKF2MzK9DTXNdsit2lIKVE9cWwykIaVTKNt/lUiTPMFz5c\nW0Gjd6zWCbX0fq9K2aFq/L74tNANJlKWbFDj8VMbyOZD7dsj2UmS005xhbvRLX6s/W40NfJFye60\nYXMoEb1vfBE+xwkpTpASd237/G9a8qL3qRpr9pRT4/Hz3pbDEY+1Zm85YwL6fDC90hK4JL8f/yg8\nyLFaXd92uNo2GetpobvUrkD2/f7CKUwemsn/+9cOLnj0P6zfd4zC/cexKYLcAd2iPt+QnimU1Xio\nDPyd4sXYrMVAL4RIEEKsE0JsFkJsE0LcF9g+WAjxpRBitxBiiRDCGdjuCjzeHXg+q2N/hfbjc6sI\nIZrd8tpsNvLy8hh/xhhu+OnVVFbokyyTJk1q9zmN+BB89+APTO4FSzfGGLKzs5k2YRwvPv04bl/z\nL3tn1dL7fXoFkqedAaMzaMnQTM/mPThsCt2TQ68eFULQPyMRVZMUVzbU1ht9Y2PlYBnNRakl+cbn\n8aPYFGwh7ggdLht2p436am+7Lk4tedFvOVRBrVfFrgheXXcw7HEq631sO1zVSJ8P5qZpp+L2aby0\nZp85fmh9Rt/SHciukmr6dUtgRJ80nl0wjmd+PJZqt4/Ln1rDi2v2MbJvGknO6OcjzAnZgE5vZPQn\ngnTjAWZKKXOBPOAcIcQE4EHgESnlUOA4cH1g/+uB44HtjwT2i2u8Hj8Ol62ZZJOYmMimTZv4euvX\nOBxOnnnmaQBWr14d9bH17k+Nv5iqqoZczBOqtNIYw7Zt2/hw+Ud8sfJjHvj975udR28S3vGB3jhH\nNBUgXU3TO6amVLv91Hn9+irYCBO2CQ4bPVNdHK/zUheQI4zPSiykG/PuLoJ0A+BKDi/fSCnxudWI\nS/0TU9vf0MTTwuTmf3aVIwT8dMZQNh+sYPvhqpD7rfvuGFISNtAP7ZXKD07vxYur91HvVYMmY9um\n0TvD1NHvLKlhWO8G6+Gzs/vw0R1ncvO0U6n3qkwemtmq8xmBfs9RI9DHh99Ni4Fe6hizC47APwnM\nBIz1/y8ClwR+vjjwmMDzs0S0a7e7ANWvofq0sLIN6F/qyRMns2v3bgBSUlLM5x566CHGjx9PTk4O\n9957L9DYcnjUqFEcPHiQlJQUfv7zn5Obm8uaNWvYULiBS354HpOnTWD27NkUFxc3NBwJo9H37dOb\n+/74Z/72zFNIKXnhhRe49dZbAT3Qz/vxpaxcudIc4+233052djazZs2itLQUCG+xPG3atEa+PFOm\nTGHz5s3NxmAENr9PjXv5RovgRW9o8067QkaYbD4YI+N3BypwYqnRR7uC1+7QSyVDyTeqX5+7iWR1\nkJDkQCjtm5T1tiDdfLGnjOx+aVw3OQunXeH19QdC7rd2bzkuu0LegPSQzwPcNG0Ix+t8vLOpKGgy\ntrUZvdFGsPl4VU2yp7SG03qnNNqe7LJz93mn8+U9s7j9rGGtOl//jCScdsXM6F3JjoDnUJxLNwBC\nCJsQYhNwFPgI2ANUSCmNy+sh4JTAz6cABwECz1cCoS/bcYCR3UQqF/P7/axY+TEjhp3e6LZ3+fLl\n7Nq1i3Xr1rFp0yYKCwt1V0oaLIe3bdvGoEGDqK2t5YwzzmDz5s2cccYZ/Oxnt/Hsky+x5osvue66\n6/j1r3+NLyC9hNPoAYYOGYKqqhw9erTRdsWmIGWDZlxbW8u4cePYtm0bZ555Jvfdd1/E9+H666/n\nhRdeAGDnzp243W5yc3Ob7RcsD8VzVi81CRGkmyq3n3qfSq/UhKjcLQ2TOX+TFayxuItqWCzV8r6u\nZHtI+SaSPm9gLr6q87X5AuWJIN3Uef1sPHCcyUMySU9ycv7ovrz9VRH1ISrW1uwpZ8zAjGb6fDDj\nszJIctrYdbQGh7N95ZWhxnvgWB0ev8awXqnNngPokeLCZW/dilqbIjg1M9msvFEC73lXSzdRiU9S\nShXIE0KkA28DI9p7YiHETcBNAAMHDoy4b8W7e/Aero24T2tx9ksm/cIheN3+QAll829ZfX09eXl5\nAEycMJkrf3g1fm/DF2z58uUsX76c/Px8AGpqati1axcDBw40LYcNbDYbl156KQDffvst27Zt44dX\nXYLNIdA0jb59++JTNWxCYIvwjQ/l7Kcfv3HgURSFK664AoCrrrqKuXPnRnw/Lr/8cn7/+9/z0EMP\n8dxzz3HNNdeE3E+vDtGbNXvr/SR3c0U8bldhWAiHy5Ir6rw4bAoZUXq2KIpAEQK/ESCF/i+WGX00\npaCuJDu1FR48dT6S0hree59HRbGJkPp8MEb/XE2TZilpa/DU+/W6/hDnWffdMXyqNOWOeeMH8PbG\nIt7bcpjLxw0w96uo8/LNkSpu/8FpzY4RjBCCjCQnx+u8CEW0yZM+0vd7Z4k+5zasSUbfEpqqIqWG\nzR76szO0VwpbDlWajxNTHLi7OKNv1aoHKWWFEOJTYCKQLoSwB7L2/kBRYLciYABwSAhhB7oB5SGO\n9QzwDMC4ceO6rC7Q51ZD6vPQoI8DqD6N8sM1jRadSCm5++67TVdLg3379pmWwwYJCQnYbDbzdSNP\nH8myN5aT0SfZvC1dvflbrp9/OS67wi233MItt9zSbEzFB/ejKAo9Mns2sktWbAKPxx22GYbx+4Wz\nWE5KSuKss87inXfe4Y033qCwsDDkcRr6muoBR/VrLQaXrqCl4FnvU0lyhv67h8OuNAR6IfTAH4tA\nb3rRR+HhYnfok6ruWn+jQO91qzhc9hZ/n+BV1G35u0Xyol+9R7czGJ/VHYCCwd05tWcyr6070CjQ\nf9mCPh9M92Qnx83Km9Z3mfLW6/MWod4XI+sO1uij4b0/PUhtZQXz7nsw5HGH9Ezh/a+LcftUEhw2\n3dgs3jN6IURPwBcI8onAWegTrJ8ClwGvAwuAdwIvWRZ4vCbw/CeynTVo6ReGbkbQXlS/hurXzJnx\nSCh2fXl6cEYxe/ZsFi1axPz580lJSaGoqAiHo+UMcfjw4ZSWlbK+cB2zL5yBz+dj586d9OwzkA9W\nrgCm/sAAACAASURBVGFwmOXWpaWl3HXHfzPvmhvxqRpZWVn85S9/QdM0ig4XsXHzV2ZGr2kaS5cu\nZd68ebz66qtMmTIFiGyxfMMNN3DhhRcydepUMjJC1w7LQHWIKzGQWdb7SYri/etsIgV6v6rh9Wth\nK23CYbcpzUosY1F10+DJE93+5kXWp2FzKLo+r2o4XFF8jtu5ijqSF/0Xu8vIH5huGsEJIbiyYCD3\nv/8N3x6pZnig3+raveUkOJSoyhYzkp0cM1sXti2jDyfL7iyp5pT0RFJc0ee7Po+bvRvXo/p87Nnw\nJUPHT2i2z9BeKUgJe0trGdkvjcRUB8dirEi0lmg+Wn2BT4UQW4D1wEdSyveAXwF3CCF2o2vwfwvs\n/zegR2D7HcBdsR92bGhp1VwwQgh94VRQRn/22Wdz5ZVXMnHiREaPHs1ll11GdXV1hKPoOJ1OXn7p\nde5/8F7GjhtDXl4eq1evDllDb8hH2dnZ/OAHP+Css87mltt/hcevMXnyZAYPHszIkSO54xc/Iyc7\n1wxwycnJrFu3jlGjRvHJJ5/w29/+FohssTx27FjS0tK49tprw47dWG1qd+qt7rxxqtMbATiUClYf\nmERObEXXJtAzejUog49V85HW2iknBOQmdyAARqPPG7R3FbW33hdS7z5W62V7cRVTmlSpzB3TH6dN\n4bV1DZOya/aUM3ZQRlT6d0aSg4q6hoy+9ZOx4b3z9Yqb1sk2B7d9jerzYXe6WP3Gy8gQV/pmJZZx\nYGzW4qVMSrkFyA+xfS9QEGK7G7g8JqPrYHxuVQ9ajtDXu5qamkaP7S4bdZV+qqoagvltt93Gbbfd\n1uy1TS2Kmx4rZ1QO77zxL3oOSA1khpKthyub2R+oauMPtqpJth2uxOvXEELwyiuvALocVHqgupFm\n/n//93/NxhXJYvnw4cNomsbZZ5/d7HUGUpUogVO4kuzUVXnRVC0q2aEzkUESS1PaGuhtiqDe1xAg\nY+VgaWTX0bps2hwKdqcNT50+R+L1+CN+joNp7ypqT71KQnLzsLFmTzlSwqQmgb57spPZo/rw1leH\nuOvcEdR7VXYcqeYXZ0fW5w0ykpzmoilngr31k7Fuf8jSSqPiZsrQ1tWJfLepELvLxcxrbmb504+y\na91qTpswpdE+gzOTUUSDNJSQ6sBd54tqrURHEV/fzk5ESonXHV6/C4UjMKETC3MoGTypR0NDkXCl\nlQY2ReCwNTc3M5wP27rE/aWXXuKMM87ggQceQAkzGayvCWioZDGaTxi11fFEJOmm3qvitCvYW3lx\nstuEuahNP3ZsVsYaclhr5gsSkuz4vXqJa6R5pqa0dxV1uAz5iz1lpLjs5PZvLsf8qGAAVW4/H3xd\nzJff6dN10ejzoF8oqt1+3RqkLZOx9WrI8e4vr8Xr11qtz+/bVMjA7Byyp8+i+ykDWP2PV9G0xmNK\ncNgY0D2JPUEZPbJrbRC+t4Fe9Utd12yFC5/dFTsnS6npQcj4cho19M4ogo8zjLmZzSbMW/KmdxAt\ncfXVV3Pw4EEuvzz8zZgR04ysxO5UUGxKXJZZhvN3Bz2jb202D7p0I6U0K3piJd1oUSyWaooruWEh\njurXWtUqsD2rqD11oRugrN5dxoRTu4e8eE48tQdZPZJ4fd1B1u49RqLDRk7/8PXzwRhrHI7Xedum\n0deH1ugN64PTWhHojxcXUVFSTFbeWBTFxqTLr6T80AG+Xf15s32H9kwJsWiq6ypvvreB3pi9d7bi\nC2Kz6YHN52n/DJyUjXuAmoulgr7woVbVArhCZPTQ8TYIZpZsa3B4dCXZ8brVuGt6IjVplkAGY0zE\nhuscFQmj7NUfdBGJRd/YttzS2+yKaWkAtKr5dXtWUXvr1WaLpQ4dr2NfeR2ThoReRSqEYF7BQNbt\nO8Z7Ww4zLisjbJlwU4zy14o6n67Rt2FlbKj3ZpdRWtkreo3+u01fATA4dywAp50xmcyBWaxZ+ipa\nE4l1aK8U9pbVomqS7n314orSAy3P33UU39tA73UH6o6j0DWDcbiUmEk3wQqJNxCggzOi2uPHKN3/\nHZ76ukavdToU/JqG2uQioNhEhwZ6LUS7O1eSHQLNKOKJcHKIoc8ntTGjh4ZFUyKQ4bc3q5dq6/ra\nGiQEsnohhGmrHQ3656T1Vyi/T1+o1VQKWb1bl2Mi2QVcNrY/DpugrMYbtWwD0D1Jz+iP1Xpxuuwx\nk252ltRwSnoiya2ouNm3aQMZffuR3qcvAEJRmHT5lRwvPsz2zz9ttO+Qnil4/RoHj9XRvW8yriQ7\nh3e3bN3cUXwvA73u2+2Pqu64KXanzSxnaw+abKwf+/y6D33wKk1PXR1S06goPoynrqE8y6hWaJrV\nG1/gWNspG4TSvR0uG4oi4k6+0UJ4/UNDoI+0IjMcdqNipclEr9bO9zta3/ymGJl1tPq8gXHn19rP\nielF3yRwfrGnjMwUVzMrgWAyU1ycNbI3EL0+D0HSTW2DdBPtuFWfXj4dSrrZWVLdqoobn9fDwe1b\nycob22j70PET6TV4CGvffA3V3/AdCG4rKBRB36HpFO+upKv4XgZ6PVDLVt3uGphLsb3tC/RSay7d\nBFfcaJqGz+smKa0bdqeTiiPFuGv0W79wdsVmjXQHySihdG8hBM4kO956f8y82WNBOC/6tk7EQlBG\nbyxSi4HfjTHBHcmLPhw2u0JyuovEtNatB7C1sfLGtBMIkm6klHyxu5zJQ3u0eLG5bdZp/HjCoJAT\ntuHIMDL6Oq8+DyFptDo94njdoe0P/KrG3rLaVunzRdu34vd6TNnGQAjB5B9eReXRErZ99rG5vWmJ\nZd+h3agoqaOuqmt0+u9loI+27tiwCB41ahQXXnghFRUVbZqQveaaa5otTmoaiJrW0KelpYEEV3Iy\nV15/I6flj+XCiy6ivroKp11BIPD4mmf00HENSMJVsrgS7YEqpvjJ6sPp3vXetk3Egt63F4KlG317\ne3R6KYnoydMSyd1cEdvkhaKtn5NQ3u47S2ooq/EwOYw+H8zwPqn8/pJRrbrIpjfR6IGoP2fhnCsP\nHKvTK25apc8XYnc46Z89utlzg/PH0XfocNa+uQR/wEK8W6KDnqkus8Sy31B98rm4i+Sb72Wg97rD\n+3YHY1ggbN26le7du/PEE0+gKLqfSHubhete6Q0/e8N0lnK4EvjlL3/JSy+9hKLYqDxagruqEqdd\n4GnSy7SjA324ShZngi6BxVOZZaiM3q9qeNW2TcRCc7+bWDhYtnaxVCxoazN5r9lGsGH19xe79UV3\nk4e1zs43WhIcNpKdNl2jb2WXqXDOlTtLWl9x893mr+ifPRqHs7m3kxCCST+cT3V5KV9/8qG5fWjP\nhraCPQemYncoXabTf+8CfVvq5wEmTpxIUZFu5+Px1XPR3PMYM2YMo0eP5p3/T955x8dRXuv/OzPb\nd9V7cS/g3jGmGtOrgeDcECAQSAEu6eGGm4QQAiQGEiAkBBJuQkwgBK5Ns0O3DcYG21guGONe1dtK\nq+2zM/P+/pjd1UpaSSvJNvcHz+fjj+0tM++2M+d9znOe88orycc9/fTTTJ06lWnTpnHdddclb1+z\nZg2nnHIKo0ePZunSpcl5sQ8++CBzTjqJL51zCg8t7mxeQggsNjuyonD22WeTk5OD1W7H7nbT0dKM\nWw/3oG6UZHv7sZk0JXSR1OunQpIlbE4L0ZB2zOoDA0X3YjcMrRCbQGp37NFwsOz0uTmegX5wNgjp\nvOjX7WthZIGLivh83WOBvLjfzUCnTPXmXJlQ3IzNMKP3NTXQVlfDqGkze33MiKkzqDhxIhtf/t/k\nb2BssYf9zQGEECgWmZLR2Z8ZT/+FC/R6fK5mJu3iyefoOitXruSyyy4DwJPt5qknnuGjjZtYvXo1\nP/rRjxBCsGPHDu69915WrVrFtm3b+P3vf588Rn19PWvXrmXFihXccccdCCFY/e477N27l/fWfsAL\nb77P9q1bWbNmjankAGwOR9eFSBK5JWU4PB4skQ60WNdpQclMTTt2GX1vFIPdZUEYYsg7naOBhNa9\n+1oTdrmOQWb00Nk0BUc3ox8sdTMYDHbn1z1warrBhoPeHt2wRxsJB0vrQDP6BHXT7be+p2lgipuD\nW0yDv5HTZ/f6GEmSGH/y6QS8rYR8ZtY+ttiDP6LR7I8CUDY2l5Zq/2eiUBsYufcZ4fXXX6ehoeGo\nHMvQBbpmUDm8gosuurDPxyZ8Zmpra5kwYQLnnnsuABabxK8f/BUbqz5EsSjU1tbS2NjIqlWrWLRo\nEYWF5hc/Pz8/eazLL78cWZaZOHEijY2NAKxcvZK33nqLk+fMJqYbxCJh9u7dy7y5cwGwdg/0mF8o\nd04ekUAAxdCJ6Qa2uApHks2ux95GzQ0Vfem9Ez/+3hpUjiuE+adHoI/p2C1ykmsfDBS509jsaAT6\nvhq7jhUG20WdVN3Ei7HbanwEoloPf5ujjYSx2YA5+j4y+r4UQt1xcFsVOSWl5JWV973OuOyyvaEe\nd24eY4o6lTfF2Q7Kx+aySUDDAR/DJx3fER1fuIzeVLtAJqxNgqM/fPgwQggee+wxAJ5/4V+0tLaw\nZtUHbN26lZKSki6Wv+lgt3dye51ZuGlzvGrdRl54831279nDTTfdRCwSBsDqSL8dVuIOmYrQ0ipv\njmUxVuolGZbjfuHqAL1IjgV6C55DKcQm0NWqOH6+IdBVSefK40jdQNcu6kyhhjXkFG/3D/a1IElm\n5+uxRL7LmpRXwkAy+p4cvaYbHGjOXHGjxWJUf/IxI6fN6pfqTejr2xrMoejdlTclo7KRZOkz4en/\nv8joL7yw78w7UwghaKkJYHdZyC7InFN0uVw8+uijXH755dx66610+DsoLi5GEgqrV6/m8OHDACxY\nsIArrriCH/7whxQUFOD1ertk9d1x7rnncc99d7Pg4iuRJRsN9XXYbDZscRmHYkn/8ciKgqwoWIRO\nNGaQlZL4KxYJLXbsMvq+jLNsDgtBXzRjk7NwQEWPGXjyeu5choJ0dEiiEFtgG5qlcqrfTSIzHpLq\nJk0T2vHAYBKCaNznJhHw1u1vYWJZdkajGIeCTo5+YIE+XU3hsDeEqmfucVO7cwexaIRR3fTz6ZBd\nVIIky7Q31ANQkm3HY7ckC7I2h4WiYZ7PhKf//yLQHy3oWpyfH4DtQQIzZsxg6tSpPPfcc1xzzTVc\n9MzFnHLmHObOO4kTTzQHbk2aNImf/exnnHnmmSiKwowZM5Lj+dLh3HPPY//BvVx63nwMAQW52Tzz\nzDNkW2Szez/+gzr99NPZtWsXgUCAyspK/vrXvzJn8iQsqpZGeSNjhPUeFgtHA71p0xOwOhTwmZmU\nw91/oA/5VNOnxWEZsESwz3WKnoF+sI6V3ZHqd6NIUtwGYWgZvSQNzNDsaEBWBp4QRENdh47sawpy\n9onFR3tpPZDnsuGPakjxJCPTYmwsoiFbuna/p7M+6Ou3cnBbFYrFwvBJU/s9n2KxkFNUQns8o5ck\niTHFncobgLJxuXzybm1ylsDxwhcq0CcaLTJtF+9uDLZ8+fLkv99b9T5+b4SCck+XD+z666/n+uuv\n7/K87sG+tbkdX1MISTJtji+++kZkSWJ0kQc9FqP5yCEa62rRdR1d13n//Z6mSb6mRpRolHB35Y2l\nsy3/aNIBycaevgJ9vEMzFtGT7fm9IdFODxBoi2BzuI9asOu0aui8LVGIHay0MoFUvxtFTgwfGVox\n9ngqbhJI2iAMYOlqpHPoSEw3aA1GKck5uruxdEjsGIJxP5lYNDOOPhrWeyQQCWllglbx1tXwz5//\niDGz5nLmtTfiyulqtnZoaxUVEyanrZelQ25pWZK6AVNi+f7e5uT/y8fmsu2dapoOd1A2NjNjt6OB\nLxRHn2hyysS3uz8kNPiDKXx2pxZUTSRNntSoyfXbHA78HR20tLT08KQHsNisSMJAjXX90icok8EO\nluh1zb0UOFMhSRJWR2bGU4lCmSfPgR4zjupghgRl3j2jt1uUPufxZoIefjdDnBtr6INvlhoKkhLL\nAdQX1FCnRXFLIIoQJj1xrJHwu/FFdWSLNAAdvdbDnXZvU4DKvE7Fzfpl/0JTVXatW8NTP7iZbW+/\nnhwm0tHSRGvNkYxomwRyS8tpb6jvIrFs8kfpiJjf77KxZlfw8ebpv2CB3sBiHZh+vjckA/0gNOuJ\nL4EsmdmgZnTaH8QiYSRZxmKzEwmbRdlwKNTjGIrV/PIbutbF3EyxJCSWR5enTzb29JN92hxKckRj\nX4iGdRSrjDPL2oXbPxow0nD0R6MQCz39bo4GdfNZDKNIfI4DWXs0rCUVN40dpmSwJOt4ZPTm7tAb\n5+kzLfinc640FTcmP++tq2HXujXMuOBSvvbAHygaMYp3/ucxnvvF7TQdOsChhFtlH7LKVLT+7SmM\n199EDYcI+zuAzp1D0rLYYyOv1EXd3uPL03+xAn1MTzsNfjCQ4wFVH0ThM1G8k+SePvRqJILV7kDX\ndQwAIQgFe86bTChvLELvorw5Vhl9pjLAhMKhr6zeMASxOA0gSRKePDvCEATbj44PSPKiJCWy76F1\nxKaiu9/NUOfGfpbUDQxscErqvNjGDnPnWZJ9HAJ9PKNvDw3MwVINd51vm1DcJMzM1r/4PIrVypxL\nr6SgchiLfvFrLvzPH9Le2MAzd3yfD5f+k6zCIvIrKvs9V2jLFpp+9ztsh8yRiW31Jn0zpsi0KO7O\n0zfsbz+u1t5fmECfMDIbiJ1rX5Ak0wpBH0RzUmqxMHWylKHraNEoNoeDaDybt0ejaIZBLNaV2rBY\nEhLL7oH+GGX0GY67U6wysiz1WTDrrm+22BScWTbCAfXoTe9K6eA9WoVY6OlJP9ThI4N1rhwqEgnB\nQBRDqdOlmpKBfujUTc2nn/DsT3/A3o0fpL0/McTdmxg+knFGr3ehbg61xhU3xVl462rZtfY9pp13\nUZKXlySJiWcs4MaH/8yUs88j0N7G2Nkn98sA6IEAdbf/F0p2Nq6o+TtNFGSH57uwKXJSYgkmT69G\ndFprBzYcaCj4wgT6hMLgaGX0QDzQD5KjjystOjN6iVicn7c6nERCISTDwGUYabN6SZZRrNakxDJ5\nuyQhD/IC1BcyzehNnt6CGundDkENmzNOU9VP7hwbkizhb4sO2UbB6GZ/EEoWYo9CbSbhd5MiixRi\n4Ja/QLJo/llQN0kHywwvUoZuEIvqXagbWYICz9AC/Z71a1n66ztpPLCPV3/3azakWAgkkDA2S0gs\nMy3Gds/o9zWZipvxJR42vNSZzXeHw+Ph3G/exjcefZLTv3p9j/u7o+FXvyJWV0flY38ky5OFBLQ3\nmhJLiyIzstCVpG6gk6c/ngZnX5xAfxQLsQnIlsHN3hSGIPHbVjWBhPmFiMWbrqx2O6quY9U0bMXF\nWGMxQuFwjx+AYrViQe8hsVQGOViivzVDZq36NqdidiCnobWEECbX6+w6C0BWTMvdWEQbcot4Ykxj\nAmH16BRiE0j1uxlKd+xn1SwF8TGWA9iNJA3CUqiboiw7Sprvw873V/PaH35La211n8fc8sZylj9y\nP/k2B2d9cpBhFgdrn1vCG396OOkCCeb8BY/dQltyytTgOPqE4qZI+Nm59l2mnXsB7ty8Xp+fU1yK\n1d43NeVbvoKOV5dTeOutuGbOxD1jBk5dJKkbMHn6VOomu8CJJ89+XHn6L1CgN5AtckaNPJlCscgY\nhhgw12akBKKYbmCJDxxRI2GsdjuarpteN7KM7PFgV01Pm+7dtxarFcXo2R2rWOTPjKMHsNkTPL3O\nunXrWLNmTfK+WFRHGCLt1B+nx4pilQm0RYfsH5O6zsHOiO0NXf1uEucc+HE+q2apBGQl80Dfvfmo\n0R/tlZ9f/+Lz7Fz7Lkt+/J+889fHCXV0DWhCCN7/599Z9dSfGTlyLDM/3EbuxElMrtrBlMJyPl2z\niv+952ddnpcb7461OTLj6IUQPaZL7Wn0Myzfybbly1AUC3Muuyqj194b1JoaGu6+G+fMmRTe/G0A\nXDNn4AqFaavpvMiNLfJwxBsiEutctzmIpP24mQB+gQK9jnWA2fx9993HpEmTmDp1KtOnT2fDhg0A\nPPLII4RCoaTyJjWr//vf/85tt93W5Tjz589n06ZNyf+LFMOtedMnEGj3xqdeRbE6nETjAd3ucCDJ\nMg6nE8kwCIVCvPrqqyxevBiIK2+EIBbrSpPIirnTSNwWDoc588wz08o003nlp0NiUEomGb1iNS2g\nN320iaeeeop58+Yl70vy82lM5SRJIivPga4ZhIYwSDnRhATmhTQ2gEKsx+NBCEFdXR1XXZU+EKT6\n3QzFwTLxnH+/toLFixcT0wwWffVaXnjhhR6Pfffdd7nkkksGfA5VVTnjjDPQtJ67JFmRB5DRd62r\nNHVEKE6juPHW1eKtq+HkL13N1HMu5ON3Xuev3/0mG19Ziqaq6JrGG396mI2vLGXyaWcxae0mXGPH\nMuLpJRR+4yaGrXyf+TNOpunAPp796Q9pOXIIMHn6xPCRTDh6LW5emBro9zYGmOSO8en7q5h6Tt/Z\nfH8Qmkbd7f8FQPkDDyDFu9idM2biisZob6jtlFiWZGEI8/wJlI/LJdSh4msOD3oNA8EXomHKMEwj\ns/6aeFLx4YcfsmLFCjZv3ozdbqelpQVVNYPPI488wrXXXktOlvlF0TVjQEXehN+OrusIYRZitWgU\nYRhYHQ6CwRCyrmPJMbk8JTsbe0sLEVnm4osvTrpoWuLKG9nQupibJS9AukCxSPztb3/jyiuvRFEG\nn9UOVO9tdShMGDeFJ598sgtFEw1rWB1Krzsrm9OCzWkh5FNxZdkGVagUhkCKvwfJQuwAPp/Ip5+S\nryg8e//9qEeOIFmtSBYrks2KnJWFRZaIxLpRN4Ph6ONB9rLLLsNqV2gNRlFjBr6jMMClrt20sR5V\n6Obss8/m+eef55prrunyGEWRyPT6FA2ZVEonRx9h1oiegXL/pvUATDnrXLKLiplx/iWsefZvvP/P\nv7Pt7dfIKiiidtcOTll0DRVvv0eoo4Pyv/4V2eGg6Ic/RD18BJb8k0vuupO3332d535xO4t+fp/p\nYBlUsRYoGWX03S9MMd3gQEuAs6WPkBWFOZd9KbMX3gtanvgz4S1bKH/wQWyVFcnbHZMm4tYMVFUl\n7O/AlZ3DKWMKUGSJ1z+pZ0p8ulYqT59b7BrSWjLBFyKj1+M/9oEUYuvr6yksLEyakRUWFlJeXs6j\njz5KXV0dZ511Fuedf455/AHw9B6Ph5//8r85/eyT+eCDDwDBk398hOmzZnLhlV/icHUNqq6z8o03\nOGXBAmbMmMH5V15Je51Z3HnyySeTO4Zv3nwLP//VPVxzxUWMHzcumZl3Hyzx7LPPsnDhQsAMSLfd\ndhsnnHAC55xzDk1NTcm1rVy5khkzZjBlyhRuvPFGolFTKz1y5EjuW3wPZ194GlOmTGHXrl0A/PKX\nv+TGG29k/vz5jB49mkcffTR5rGUvP895l81n+vTpfPvb3za7fGMGK1e+zQWXns3MmTNZtGhRsvv4\njjvuYOLEiUydOpVf3vtzhBBd3te+zvXQQw8xefJkJk+ezCOPPIJhCKprjjBhwgRu/fa3ueLseVxx\nyYWEwz2zp4MHDzJv3jymTJnCz/77v8EwkO12jrS3M/OiizCiUbZ/9BEnLziLGXPnMm3KFI4c2s/h\nw4c48cQTuf6Gr3Ha2XP4ytVfJhTvd+jrfbzrrruScwx27twJwD+eWcJtt92GGn+9b7/9DrNmzWb8\n+PGsWLGix5qDwSA33ngjJ510EjNmzEjOQ9ixYwcnnXQS06dP56xT5vDJzl2EVY3LL7+cZ599tsdx\nEtRNJhepVI4+qum0hWJpqZv9VRsoGjma7CLTGqGgchhX/OQurvr5vdhdbur27OTcb32HE6IGwffe\no/jHP8ZxwnjAFBiUP3A/jkmTiD3wW6664RYMTWfXB++R57J2cvQZFGO77xwPt4ZwRnwo+6qYes4F\nePIHb8QW2ryFlj/9iZyFl5Fzadddlmy3J10uE543hR47p40t5JWtdcn3Or/Ujd1toe44+d78fxHo\n9+y5h6rNXx30n60fX8uB2m+wfefXkrft2XNPn+c877zzqK6uZvz48dx666289957AHz3u9+lvLyc\n1atXs2r1KiRJGpDCJRgMMnP6bNa9u5G5804FIDc3h3UrV3LTDdfzwx/9CIDT585l/fr1bNmyha9c\nfTWPPr0Ei64TjXaqUmRZprG5mRf+90WeeeFF7rjjDvP2ZNeuQFVVDhw4wMiRIwF46aWX2L17N59+\n+ilPP/10/GIDkUiEG264geeff57t27ejaRqPP/54ct35efm8+/Y6brnlFn77298mb9+1axdvvvkm\nGzdu5O677yYWi7Fz506WvbSUFUvf4oM1G1EUhWeffZbamgYe/uNveeutt9i8eTOzZ8/moYceorW1\nlZdeeokdO3bw8ccf89Of/tRcf7c6Q7pzVVVV8dRTT7FhwwbWr1/Pk08+yccfb0WSYe/evXz1hm/y\n2nsbycvLY9myZT0+j+9973vccsstbN++nWK3qXm2DhuGrbQUyWrFMW4cT739Nt+//XY2LF3Kh2++\nxbDKSoSA3bt3c/Mtt7B25Ud4PNn86U9/6vd9LCwsZPPmzdxyyy088vuHzRulRIe0gSRJ1FYf4cU3\n3+Xf//43N998c4/azH333ceCBQvYuHEjq1ev5vbbbycYDPLEE0/wve99j42bNvPPFasoKS2nNaAy\nefJkPvroox6vXVYkEGQ02D0ajmf0TgtNiWapbtLKUIePut27GDN1JrG6ui73jZgynWsXP8LNTzzN\nCcNH0/TAg7jPOJ28667tuiank8o/PYaSnU3bT/4bT24efq83aWxmcygYmug3ueo+XWpvo5/Z7VXI\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10a86f128>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "bikes.iloc[:50, :].plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 项目时间\n",
    "### 2018七月在线 机器学习集训营 julyedu.com \n",
    "下面我们通过一个做股票分析的小项目带着大家熟悉一下pandas表格拼接和处理的操作。可参考以下博客文章。\n",
    "\n",
    "[stock analysis](https://ntguardian.wordpress.com/2016/09/19/introduction-stock-market-data-python-1/)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2004-08-19', '2004-08-20', '2004-08-23', '2004-08-24',\n",
       "               '2004-08-25', '2004-08-26', '2004-08-27', '2004-08-30',\n",
       "               '2004-08-31', '2004-09-01',\n",
       "               ...\n",
       "               '2017-07-07', '2017-07-10', '2017-07-11', '2017-07-12',\n",
       "               '2017-07-13', '2017-07-14', '2017-07-17', '2017-07-18',\n",
       "               '2017-07-19', '2017-07-20'],\n",
       "              dtype='datetime64[ns]', name='Date', length=3253, freq=None)"
      ]
     },
     "execution_count": 98,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "goog = pd.read_csv(\"data/GOOG.csv\", index_col=0, parse_dates=[\"Date\"])\n",
    "goog.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x10640bf98>"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nPyjENgXh7fUAAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10641f978>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "goog[\"Adj Close\"].plot(grid = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x10b7d5748>"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nPyjENgXh7fUAAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x106404e48>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "goog[\"Close\"].plot(grid = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x10b6ac710>"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAEACAYAAAC9Gb03AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8FPX9x/HXJ3dCEgICAQISVEARRQ3FAw8iHrTWYq1t\ntbbepfVua+vR46c9bLG2tbYerVWrtVa03sUDr+DVIoKKcipySLjvEEKO3f38/pjJZpNsssmek83n\n+XjkkdnZOd7ZJJ+d/c7M9yuqijHGmPSVkeoAxhhjEssKvTHGpDkr9MYYk+as0BtjTJqzQm+MMWnO\nCr0xxqQ5K/TGGJPmrNAbY0yas0JvjDFpzgq9McakuaxIC4jI/cAXgc2qOi5k/pXA5YAfeE5Vr3Xn\n3wBc7M6/SlVnR9rHgAEDtLy8PKofoCv27NlDnz59Erb9npLBKzksg3cyeCWHZYgux4IFC7aq6sCI\nC6pqp1/A8cARwKKQeZXAK0Cu+3iQ+30ssBDIBUYCnwKZkfZRUVGhiVRVVZXQ7feUDKreyGEZvJNB\n1Rs5LEOL7uQA5muE+qqqkZtuVPUNYHub2ZcCM1S1wV1mszt/GjBTVRtUdRWwApgY8d3GGGNMwkTb\nRj8aOE5E3hGR10Xkc+78MmBtyHLV7jxjjDEpItqFbopFpByYpW4bvYgsAqqAq4DPAY8C+wF/Buaq\n6j/d5e4DXlDVx8NsczowHaC0tLRi5syZcfhxwqutraWwsDBh2+8pGbySwzJ4J4NXcliG6HJUVlYu\nUNUJERfsSvsOUE7rNvoXgcqQx58CA4EbgBtC5s8Gjo60fWujTx4v5LAM3smg6o0clqFFStroO/A0\nzglZRGQ0kANsBZ4FzhaRXBEZCYwC5kW5D2OMMXHQlcsrHwEmAwNEpBq4EbgfuN9twmkEznffXRaL\nyGPAEsAHXK6q/kSFN8aYnqi+yU9NfRODivKSsr+IhV5Vz+ngqW92sPzNwM2xhDLGmHT2/Uc/4IVF\nG3nlBydwwKDEnxewO2ONMSbJXli0EYCT/vB6UvZnhd4YY9KcFXpjjElzVuiNMSbNWaE3xpgU2r6n\nMeH7sEJvjDEpdPY9/0v4PqzQG2NMCm3Z3ZDwfVihN8aYJDthdEsX8tecMibh+7NCb4wxSeYLBILT\nedmZCd+fFXpjjEmyJl9Lr8E5WYkvw1bojTEmyZpCjuhzMiXh+7NCb4wxSdbkbyn0Db5AJ0vGhxV6\nY4xJos019SxaVxN83GiF3hhj0svEX7/a6vGc5VsSvs+IhV5E7heRzW7f822fu0ZEVEQGuI9FRP4k\nIitE5EMROSIRoY0xJl2cMGZg5IVi1JUj+geAqW1nishw4BTgs5DZn8cZVWoUzniwd8ce0Rhj0kdZ\nSX6rx2cdMSzh+4xY6FX1DWB7mKduA64FQkcXnwb8wx3OcC5QIiJD4pLUGGPSwLqde4PTq2ecRkaG\nR6+6EZFpwDpVXdjmqTJgbcjjaneeMcaYFBFnqNcIC4mUA7NUdZyIFABVwCmquktEVgMTVHWriMwC\nZqjqW+56rwLXqer8MNucjtO8Q2lpacXMmTPj9CO1V1tbS2Fh4ofr8noGr+SwDN7J4JUcvSXD7kbl\nytfqAPjTiQUU57Q/mu9OjsrKygWqOiHigqoa8QsoBxa504cAm4HV7pcPp51+MPBX4JyQ9ZYDQyJt\nv6KiQhOpqqoqodvvKRlUvZHDMngng6o3cvSWDP9dsVVHXDdLR1w3Ky45gPnahRre7aYbVf1IVQep\narmqluM0zxyhqhuBZ4Hz3KtvjgJ2qeqG7u7DGGPSUVFeFgCfHzc4qfvtyuWVjwD/A8aISLWIXNzJ\n4s8DK4EVwN+Ay+KS0hhj0sBH63YBUHngoKTuNyvSAqp6ToTny0OmFbg89ljGGJN+3l3tXMBYlBux\n9MaV3RlrjDFJ8t6aHQAcNzrxN0mFskJvjDFJcuiwEgAK7YjeGGPS04DC3KQXebBCb4wxSdPg85Ob\nhIFG2rJCb4wxSdLgC1ihN8aYdNbgC5CbhDFi27JCb4wxSdLQZE03xhiT1hr9AbIzrdAbY4xnvf/Z\nDrbVNvDask1U76jr9vr+gJKVhMHA20r+dT7GGNNDffmu/7Z6PLg4j7k/ntLl9f0BJVOSX+jtiN4Y\nY7pAw3TpvrGmvlvb8Ac0KQONtGWF3hhjuqDJH3nsjkj8ASXLCr0xxnhToz8Q8zb8qmRaoTfGGG9q\n9MVe6AMBjxZ6EblfRDaLyKKQebeKyDIR+VBEnhKRkpDnbhCRFSKyXEROTVRwY4xJpngUep+HT8Y+\nAExtM+9lYJyqHgp8DNwAICJjgbOBg9117hKR5N8GZowxcRaPQu/Zk7Gq+gawvc28l1TV5z6cCwxz\np6cBM1W1QVVX4Yw0NTGOeY0xJiUa/f6w88NdjdORZRt38/KSTfGK1GXxaKO/CHjBnS4D1oY8V+3O\nM8aYHq2+KfwRfSD2i3ESTrrybiQi5cAsVR3XZv5PgAnAmaqqInIHMFdV/+k+fx/wgqo+Hmab04Hp\nAKWlpRUzZ86M8UfpWG1tLYWFhQnbfk/J4JUclsE7GbySoydkWLHTz6/mtr9u/m+nFNDohz7ZnTfJ\n1DYqV7xWx5h+GdxwZH7UOUJVVlYuUNUJkZaL+s5YEbkA+CIwRVveLdYBw0MWG+bOa0dV7wHuAZgw\nYYJOnjw52igRzZkzh0Ruv6dk8EoOy+CdDF7J0RMy5K3cBnPnAs4IUbUNTuv13n3GcNUj73P72Ycx\n7bCOGzC++9ACoI78wmImT54UdY5oRNV0IyJTgWuBL6lqaIcPzwJni0iuiIwERgHzYo9pjDGpFXoy\nds6PJgen1+/cC9Bp2/u22gYmjRoAwP+dPjYxATsR8YheRB4BJgMDRKQauBHnKptc4GVxLhWaq6rf\nVdXFIvIYsATwAZeravgzGMYY04M0F/r9B/ZhQGFucH6e2+3wrr1NYddbt3Mvk2a8FnxcWpyXwJTh\nRSz0qnpOmNn3dbL8zcDNsYQyxhivab4z9q5zK1rNf3R+NQBvfrIVVUXaXCd/Z9WKVo/zrD96Y4zx\npuYj+hy3UGe73Q0v3VATXGZnXfuj+rbX3/exwcGNMcZ77qxawezFG4GWQv+1CcPbLVfva99S/fiC\n6uD0+OEl5KVgKEHrj94YYzpR3+Tn1tnLg48L3SPycBem+yL0cDmxvF88o3WZHdEbY0wn9ja2Pkrv\nm58NQEOYG6iaIvRwmZuVmh5hrNAbY0wnfCG3voYO7L23ydfpstC+e4RUjBcLVuiNMaZTof3Qh15Q\nE66Zpu0RfduOB5rb+ZPNCr0xxnSioaml6UZoqfTXnDKm3bL+gPL6x1u46IF3UdV27filxbnt1kkG\nOxlrjDGdaAi5PHJvSNEfM7io3bJNfuX8++cFp7fWNrR6PlX9n9kRvTHGdKI7/dD/653PgtOKckzI\nHbEA04/bL265usMKvTHGdKKhG4V+QGFOcDoQZrVjDhgQj0jdZoXeGGM60RDmJqiODOnb0o9NU7hK\nnyJW6I0xphPhrpfvyE3/WRKcjnTzVDJZoTfGmE4s21gTcZl7z2s/9oevzaWWlxw7Mm6ZussKvTHG\ndGL1trrIC4UROvTguLJifvrF5PdD3yxioReR+0Vks4gsCpnXX0ReFpFP3O/93PkiIn8SkRUi8qGI\nHJHI8MYYk2gjB/SJuEy4Sy1D2/YzM1J7TN2VvT8ATG0z73rgVVUdBbzqPgb4PM6oUqNwxoO9Oz4x\njTEmNeqbIp+MHd6/gH37FzBqUMtYr6FH9BNGpKYzs2YRC72qvgFsbzN7GvCgO/0gcEbI/H+oYy5Q\nIiJD4hXWGGOSrb7JH+z6oDiv43tMszKETzbXBh83H9GfeXgZ13/+wIRmjCTaO2NLVXWDO70RKHWn\ny4C1IctVu/M2YIwxPdDeJj/9C3JY8LOTO10uM6P1yFLN198fXNY3ZZ2ZNZO2vauFXUikHJilquPc\nxztVtSTk+R2q2k9EZgEzVPUtd/6rwHWqOj/MNqfjNO9QWlpaMXPmzDj8OOHV1tZSWFgYecEE8kIG\nr+SwDN7J4JUcXs5w70cNLN3m5/eTC9o9N3t1E31zhKOGZvHjN+tYv6elnlYOz6JqrY9vHpTDSSOy\nY84RTmVl5QJVbX/JTxvRHtFvEpEhqrrBbZrZ7M5fB4QOuzLMndeOqt4D3AMwYcIEnTx5cpRRIpsz\nZw6J3H5PyeCVHJbBOxm8ksOrGQ748fP4Asr+A/uEzRc6Z/2Lz7V6rmqt041x7j5lTJ7c9StuEvFa\nRPt54lngfHf6fOCZkPnnuVffHAXsCmniMcaYHsMf0GD/8vXduGmqrbdXbI1XpKhFPKIXkUdw3rgG\niEg1cCMwA3hMRC4G1gBfcxd/HvgCsAKoAy5MQGZjjEm4dTv2Bqe3tOmFsjtSMUZsWxELvaqe08FT\nU8Isq8DlsYYyxphU217XGJzuTg+WbRXkpL7Q252xxhiTQFPHDU51BCv0xhgTzi0vLIvLdr511Ii4\nbCcWVuiNMSaM/63cFpftiEjkhRLMCr0xxsRBV/rESRUr9MaYtLRrbxMn3FrFonW7ur3u7vqmVo+n\nHhy5nf2E0QO7vZ9ksUJvjElL767azpptddz28sfdXvdvb6wMTi/9xVTuOjdyR7xnHlEGwKwrj+32\n/hIt2jtjjTHG05r7nvF3oZuXtuaubOnHMS87o0vt7IcOK2H1jNNazfvv9Sd2e9+JYEf0xpi0VL3T\nueHJH+h+oZ+3uqXQR3sytTgvi6El+VGtG292RG+MSUs/e9oZK2nBmh1Rb+O0Q6PrZX3ej6eQ64E7\nYptZoTfGpLW6xsgDh3TkptMPjmq9QcV5Ue8zEazpxhhjQtQ2+ILTXui+IB6s0BtjTIhVW/YEp/M9\n1PwSCyv0xpi0VFqcG9V6Afcqnf/74lgyMlJ/V2s8xFToReT7IrJYRBaJyCMikiciI0XkHRFZISKP\nikhOvMIaY0xX7WmIrm2+xr1ZalxZ33jGSamoC72IlAFXARPcIQYzgbOBW4DbVPUAYAdwcTyCGmNM\nJPe/tYqqZZvx+QOt2tq7Y3e9s15xfvpcqxJr000WkC8iWUABziDgJwKPu88/CJwR4z6MMaZLfjFr\nCRc+8G67It+VsbGb7drrHNEX5XV9nFevi7rQq+o64HfAZzgFfhewANipqs2vcjVQFmtIY4zpjuaj\n8mbduWfqhic/AqAoL32O6KU773StVhTpBzwBfB3YCfwb50j+JrfZBhEZDrzgNu20XX86MB2gtLS0\nYubMmVHl6AovjzDfG3NYBu9k8EqOeGSoaVCuqqoDYNr+2TzzaUvHZL+clM/wos6Pa5szXPCic9XN\n/acWkJGCLoa781pUVlYuUNUJkZaL5S3rJGCVqm4BEJEngUlAiYhkuUf1w4B14VZW1XuAewAmTJig\niRwB3qsjzPfWHJbBOxm8kiMeGV5ZsgmYD9CqyAMcMHY8R++/T9cyvPgcACdWVsaUJ1qJ+H3E0kb/\nGXCUiBSI0xnEFGAJUAWc5S5zPvBMbBGNMSayu+asaDfvisoDur2dffsX8LnyfvGI5BmxtNG/g9NU\n8x7wkbute4DrgB+IyApgH+C+OOQ0xphOfba9rt285mviL/j7vC5vJytTPNeFQaxiOtugqjcCN7aZ\nvRKYGMt2jTGmuypG9GP24k2t5o0uLQKgwRegwecnNyv8na7l1z/H4YMymTwZVCHTA8P/xZPdGWuM\nSQsvLdnUbl52ZkuJq+vgBqq57tiw7292nvcHlDS5ITbICr0xJi1cPWVUu3nZmS0Vu8kfCLteTlZL\nGbyzaoVT6NOs0qfPhaLGmF4t3LXyod0YNHVwMX1OyFH/rbOXA9Z0Y4wxnuRrc8Q+54eTyQvpfbLJ\nF/6IviHM/O17GuMbLsWs0Btj0oKvzRF7+YA+ZIU03cxZvjnseo1hCv2H63bFN1yKWaE3xqSF9e4Y\nsaGyM1pK3E3/WRJ2vV/Maj9/y+6G+AXzACv0xpi0MOvDDe3mZUY4qbprbxNLN9QkKpJnWKE3xqSt\n0CtqwtnTQVfGt3zlkETESRm76sYYk3bGDy/p0nLhCv2nv/5CxE8CPY0d0Rtj0kJedgYHDy3mse8c\nzT8ubLk5/6JJI4PTob31PvzOGk6+7Q0Arp06Jjg/3Yo8WKE3xqSJ+qYAa7fXMXFkf/oWtAwactCQ\nouD0i4s2Bqd/8tSi4PSEEf2TEzJFrNAbY3q85iP1cG3yp48fGpzeUhv+apqCnExuPT6feT+ekpiA\nKWaF3hjT49U1Ov3UTD9+v3bPhd401a8gJ+z6edkZDCzISLteK5tZoTfG9HjNY8QW5nY+zmvoEX/o\nCdtwd8emk5gKvYiUiMjjIrJMRJaKyNEi0l9EXhaRT9zv6dWDvzHGc5rHiC3sYJzXQUW5ALz1ydbg\nvL75LW8KY4cUJzBd6sV6RH878KKqHgiMB5YC1wOvquoo4FX3sTHGJEzzEX1RbvhCf8tXDgXgoblr\ngvPe+HhLcFrSrBOztqIu9CLSFzgedwQpVW1U1Z3ANOBBd7EHgTNiDWmMMZ2pjXBEH9pk895nO9jW\nwUnZdBXLDVMjgS3A30VkPLAAuBooVdXme5E3AqWxRTTGmM7VNjiDgRd2cEQferx+5l3/ZUBh+JOy\n6UpCbyDo1ooiE4C5wCRVfUdEbgdqgCtVtSRkuR2q2q6dXkSmA9MBSktLK2bOnBlVjq6ora2lsLAw\nYdvvKRm8ksMyeCeDV3LEmuHN6ibuW9TIrcfnM7CgfUPF2+ua+NtH4bseHlQg/Pb4Ak+8DtC916Ky\nsnKBqk6IuKCqRvUFDAZWhzw+DngOWA4McecNAZZH2lZFRYUmUlVVVUK331MyqHojh2XwTgZVb+SI\nNcP9b63UEdfN0h17GsI+/6dXPtYR181q93XDkx/qrr2NcckQL93JAczXLtTrqNvoVXUjsFZEmu8d\nngIsAZ4FznfnnQ88E+0+jDGmK5qvow+9Zj5UR0MD7j+wkOK8zi/JTAexdmp2JfCwiOQAK4ELcU7w\nPiYiFwNrgK/FuA9jjOlU8+AhuR30VnnM/vuEnb9xV/s+7NNRTIVeVT8AwrUPped9xMYYT2oe+q+j\nyyQP3zf87Tz/W7ktYZm8xO6MNcb0WDX1Text9Le6Pr4jlWMGtps36YABiYjlOVbojTE91qE3vcTk\n31V1adnfnHlou3nXnDwmzJLpxwq9MaZHemmx0+Xwppqu3fw0uG8eZ39ueKt5kUagShe946c0xqSV\nFZt3M/2hBa3mXXniARHXC0R531BPZ4XeGNPjnPSHN9rN60oR9wV6Z6G3MWONMWnhrIrhEZc5Zexg\nnnxvHU9ddgz7D0r9XbDJYoXeGJMWutLePnXcYFb++gsd3kCVrqzpxhiTFvrkhL8rtq3eVuTBCr0x\nJk2UdDBMoLFCb4zpAWobfDz1fjUA/l56QjUW1kZvjPG8ax9fyPMfbaRq2RZ+/qWDg/MPGlKMAN86\nekTqwvUAVuiNMZ73/EfOzVHPLlzPswvXB+dfcMwIvv65fVMVq8ewphtjjKct3VATdv6Fk8qtyHeR\nFXpjjKdV7wjflfCXDy9LcpKeK+ZCLyKZIvK+iMxyH48UkXdEZIWIPOr2VW+MMVGpb/KHnd/PrrLp\nsngc0V8NLA15fAtwm6oeAOwALo7DPowxvdT3Hv0g7Pzi/PQfGSpeYir0IjIMOA24130swInA4+4i\nDwJnxLIPY0zvtKfBR/n1zwUvp5z/05P47/UnBp/va4W+y2I9ov8jcC0QcB/vA+xUVZ/7uBqwhjRj\nTLfNX7Oj1eMBhbkMLcnnkmNHpihRzyUaZbedIvJF4AuqepmITAZ+CFwAzHWbbRCR4cALqjouzPrT\ngekApaWlFTNnzowqR1fU1tZSWJjaDoy8kMErOSyDdzJ4JUe4DMu2+5kxrx6AKw/PpaI0sVeDe+F1\n6G6OysrKBaoabjjX1lQ1qi/gNzhH7KuBjUAd8DCwFchylzkamB1pWxUVFZpIVVVVCd1+T8mg6o0c\nlsE7GVS9kSNchjc/3qIjrpulI66bpbX1TSnJkArdyQHM1y7U66ibblT1BlUdpqrlwNnAa6p6LlAF\nnOUudj7wTLT7MMb0Xhf8fR4A/7z4SPrk2r2dsUjEdfTXAT8QkRU4bfb3JWAfxpg01zxIyOjS1Den\n9HRxeZtU1TnAHHd6JTAxHts1xvQ+i9fvYlBRXvBxXhe7HzYds89DxhhP2FXXxOTfVbGjrgmAfgXZ\nZGYIxXl2GWWsrAsEY4wnfFC9M1jkAXbUNXH6+KEpTJQ+rNAbYzyhIEwTza69TWGWNN1lhd4Y4wkb\ndtW3m3f4vv1SkCT9WKE3xnjCQ/9b3W5ecZ6dRowHK/TGGE8YOaBPcLq5bf7goX1TFSet2NulMcYT\nHpvvjAl76eT9ufbUMdzylUMoyLESFQ/2KhpjUm7jnkBw+rqpBwJYkY8ja7oxxqTUU+9Xc/2bzihS\nPzp1TIrTpCd7yzTGpEQgoDy7cD3ff3RhcN6pBw9OYaL0ZUf0xpiord1ex71vroxq3Yfmrmk3etTA\notx4xDJt2BG9MSYqNfVNHPfbKsAZqHufwu4V6Q/W7mw3zy6nTAw7ojfGROXQm14KTm+qaeDp99dR\nfv1zHPaLlzpZq8VT769rN88ZjdTEmxV6Y0zMdtQ1BpthdtY18fiC6uBYr+HUNfqC0wcOLuIXx+Tx\nyc2fT3jO3irqQi8iw0WkSkSWiMhiEbnand9fRF4WkU/c73YPszFpRtsMQXruve+Qk9lSTn7474Wc\nctvrHa6/dEMN4PRQ+eL3jmff4kyyM+24M1FieWV9wDWqOhY4CrhcRMYC1wOvquoo4FX3sTEmjby1\nYmu7eY3+QKvHn27ZE3bdQED5yt3/A+D2sw+PfzjTTixDCW5Q1ffc6d3AUqAMmAY86C72IHBGrCGN\nMd5y75urWj0+6aDSLq/70pKNwemj998nbplMx+LyWUlEyoHDgXeAUlXd4D61Eej6X4AxpkcIbWMH\neGXppi6vu3xjLQCDi/OsuSZJpG1bW7c3IFIIvA7crKpPishOVS0JeX6HqrZrpxeR6cB0gNLS0oqZ\nM2fGlKMztbW1FBamdtxJL2TwSg7L4J0M0eR4eU0TDy9tBGBCaSardgXYVt9SR04YlsXr1c4bwQNT\n+7Rad69PufSVOgDuObmAnEyJKkMieCFDd3NUVlYuUNUJERdU1ai/gGxgNvCDkHnLgSHu9BBgeaTt\nVFRUaCJVVVUldPs9JYOqN3JYBu9kUO1ejjVb9+iI62YFv1RVK39XFXz89PvVqqr6zXvn6ojrZmmT\nz99q/e8+NL/VutFkSBQvZFDtXg5gvnahVsdy1Y0A9wFLVfUPIU89C5zvTp8PPBPtPowx3vL6x5vb\nzVvpnnTNEDjtkCEAvPmJc7J22cbdweWa/AFeWLSx3fom8WK5DW0S8C3gIxFpvo/5x8AM4DERuRhY\nA3wttojGGK+45cXlHT4XUMhq0+ZeU98yFOCMF5YFp39z5iHxD2c6FHWhV9W3gI5uY5sS7XaNMd70\n5idbqG1oOQn72jUndLjsr84Yx0+fXkRWRkvhv++tlit1zpm4b2JCmrDslLcxpkvunvNpq8f7DXRO\nGD46/SgAykryg88dUuaMDHXLi8to68bTxyYqoumA9SBkjOmS/366zfl+/YlkZbZ8mD9yv31YPeO0\nVssWuZ2TLVizg4Vrd+ILtNxMdeGkkUlIa0JZoTfGdKiu0cfLSzbx+XFDgvOGhhy5d6QoLzs4Pe3O\nt4PTBw4uim9A0yVW6I0xYb27ejtf/YvTVcHVONdbfP+k0V1at6iD7obv+IZ1eZAK1kZvTC9WtWwz\nczf4wj7XXORDHb5vSZgl28vLzgw7v3yfPmHnm8SyQm9ML3bhA+/yl4UN7eb//qX2l1E+8u2jOH70\nwC5v+4lLj243r+3llyY5rOnGmF7qByHD+J1y2+us31nPC1cfx5ptdfz5tRUAHDa8hAuOKef40QPp\n3yenW9uvGNGfX0w7mLkrt7F2+17uOz/ynfomMazQG9MLqSpPhozw9PEmp6Ox5qEBmz112TExjfp0\n3tHlnHd0edTrm/iwz1HG9EJ/fOUTAPrmZ3e4zOoZp9nQfmnCCr0xvcx9b63i9ledQv/M5ZO45+QC\nCnOzyMtuKQfv/uSkVMUzCWBNN8aksdoGH+NunA3Aop+fyi0vLOOhuWuCz5cP6MPqTGHRz08F4Pon\nPqRq+WYGFHavPd54mxV6Y2Lw/mc7OGhIcYeXE6batDveCk43F3yA/Qf24dkrjm23/IyvHJqUXCa5\nrNAb0017GnwsWreLy//1PltrnUsTn7l8Em+t2Mqts5fzzOWTGD+8a9ebJ0pNfROH3vRS2Od+eMpo\nrjhxVJITmVSyQm9MN/gDysEhR8bNQm/zn3bn2+36fkm28+6bF5y+7evj6d8nlzte+4Q/nn14q87H\nTO+QsEIvIlOB24FM4F5VnZGofaU7VU3a1Q/+gDLuxtkU5mUx78dT2u337RVbefK9dZwzcTj9++Qw\nckCf4DJN/gDLNuwmO0s4cHAxjb4AWRlCRkbPv3IjEFDufWslv36+dW+MpcW5bKppf8NRMvkDyrY9\nDSzbsJtfP7+01WAfK3/9heDrf0I3bnYy6SUhhV5EMoE7gZOBauBdEXlWVZckYn/x5A8oAikpTtv3\nNLJsYw3bahvZubeJ37+0nJ11zsANlxw7kjkfb+Go/fpTmJvN9j0NFORkMbx/AUW5WRTkZrKppgEB\nyvrl8/rHW1i2oYZDyvpS2+CnpCCbffsXsHurj2Wvf0ptvY/F63dRU+/jeyeNYkjfPO6a8ylPvudc\nW723yc/IG57vMOsT71UHp8cOKWbJhpqwy5WV5PPPS46kfJ8CtuxuYGttI29WN9G0ZBN9cjI5cEgx\nu+ubWLqhhuc/2kijL0Btg49RpYWUleTz5idbWby+hkFFuRw7agD1TX76FeRw+vih7DegDyJ06U3Q\nGVKt/e+1yR+grsHPnXNWcM8bKxlXVsy6HXs5cHAxO+oa2X9gIc99tKHd9ubeMAURKC3OY9XWPbz5\nyRa+ddTaBJMtAAARdElEQVQIxvz0RRr9ASp/N4fC3Cw+Wrer1XoHDSnmgEGF/GfhemfGi88Fn8vJ\nyuAfF03kgEGFNPoCNPgClORn0+QPsGJzLfNWb2fRul28stQZ5emsimEsWLODVVv3hP2Z377+xLR4\nkzWxi3lw8LAbFTkauElVT3Uf3wCgqr8Jt/yECRN0/vz53d7P8o27efqDdQQCSklBjvNPD/znw/WM\nLi2icswgsjOFpUsWc/j4Q8nOzCAzQ8jMEGrrfezc28jOuibWbt/Lh9U78auyZH0NhblZjB1aTFlJ\nPn0Lsiktymu1XwXeW7ODcWV9yc4UsjMzyMoUsjMyyMgQ8rIzyMvKJCcrg0ZfgD2NPt7/aAnDyvdn\nT4OfukYfexp9zpuKCPVNfjbuqg92A9tVWRmCLxD/39+4smIWrQtfuL80figVI/ox68P1DCrO47kP\nNyACqlC+TwF987MZVVrE4wuqg/Nj0fwa5mRm0OgPdLhc+T4FrN5Wxz59cmj0BygryWff/gWIQGFu\ndvCNaf+BfSgtzmPnzh0s2dbx9jpy97lHcNzogRTmhj9GuuHJj3hk3mfd3m40sjOFQUV5rN+1F1X4\n0aljyBChYkQ/Jo7s3+XtzJkzh8mTJycuqGVIWA4R6dLg4IlquikD1oY8rgaOjPdOVm2t5a+vf0pW\nRvsisGhdTfDoFID33u1wOxniHAUP7ZvPtMOGUt8UYO7KbcFxLzsS7kivU4uXApCXnUFBThZ+t0gX\n5GQyqCiXYf3yGVqSz6WT92d4v3z698mlMDeLqx55n7FDi/nCIUMoLc6lpt6H368M75/PzromdtQ1\nsrfJT3ZmBqu37qEoL5txZcUE1CkGBTlZ1Db4eHvFVt5buIjTT/gcg/vmIcCeBj9zV21j/urtXDhp\nJAcNKQ7G7azJ6PxjygG48xvhf9TffXU8AB9W7+SVpZvZWtvAv975jO+dNIqFy1fx7akVPLFgHWt3\n1JGblcFVU0YxqCiX/JxMCnOzEISNNfUM65dPtts/SvOJz6plm1m3cy+baurx+ZX1u/aSmZFBgy/A\noOI8hhTnsXJrLR9vcpowGn0tfxtbdjdQ2+BjU02A8cP6UpyfzcTy/mRmCoOL86hvClDX6OPIkfvQ\n6Peza28Tx40aGMwQyW/OPIQfnTqG217+mJPGlnJIWV9K8rPJyBAafH7Wbt/L4vW7OGLffnz64bzg\nP3QgoLy4eCPVO+rIEKEwN4sddU3kZ2egQH1TgFGDCpk8ZqD1F2O6LVFH9GcBU1X1Evfxt4AjVfWK\nkGWmA9MBSktLK2bOnNnt/QTc7AI0BgB1jrYb/bC7UUGccSx376kjJy8ffwD86swryIKCbKEwWyjI\nhowwBc0XULbUKQXZQlab/60Mce4286mzTX9ACbjTTX5oDCi+AGRnQG6m4G+oo39xH/Kywu8rWWpr\nayksLEzZ/i2DtzJ4JYdliC5HZWVll47o3bbL+H4BRwOzQx7fANzQ0fIVFRWaSFVVVQndfk/JoOqN\nHJbBOxlUvZHDMrToTg5gvnahJifqM+C7wCgRGSkiOcDZwLMJ2pcxxphOJKSNXlV9InIFMBvn8sr7\nVXVxIvZljDGmcwm7jl5Vnwc6vj7PGGNMUtjpe2OMSXNW6I0xJs1ZoTfGmDSXkOvoux1CZAuwJuKC\n0RsAdH73U+J5IQN4I4dl8E4G8EYOy9CiOzlGqGrETow8UegTTUTma1duKkjzDF7JYRm8k8ErOSxD\nYnNY040xxqQ5K/TGGJPmekuhvyfVAfBGBvBGDsvg8EIG8EYOy9Ai7jl6RRu9Mcb0Zr3liN4YY3ot\nK/TGGJNEkqxxQUNYoY+zVPwSw/FCDhGxvy9Xqn8fIrJ/KvfvZsh0v6fstRCRvu73VP5tJn109h7/\njygio0RkjAdyHCUifwZGpjDDwSIyGUBTdPJFRA4RkWvcDN0fqy8+GQ4TkW+LyOBU7N/NMFFE/igi\nl4hIRgp/H0eIyBvADBEpjrhCYjJMEpEHgZ+KSP9kvxYikiEixSIyC/gTpOZv060RTwB3isgpzW98\nydBjC72IlIjIPcATwF9E5IciUpSiLD/COVP+MbAumb9Ad/8ZInIXzmvxYxH5pYhMaH4umVmAm4Ff\nN7/hJPO1EJFsEfkrcB9wAnCziMR9CMsuZPgD8FdgGfBN4Pfuc0k9knXHgvgV8KiqflVVa5KdQ0T2\nA+4CqoARwC9F5LRk7R+CRX03kA2UicjX3WxJ+99w/x/uAp4EluP8XfRL1v57ZKF3i8evAL+qHgpc\nCxwHDE1RpFLgIlX9s6o2qKo/yfsvAQpV9UDgXGAbcI2IFCbryCWkoL8B3I7z+0FV/Un8hxoH9FXV\nClX9Js7fd7JvaS8C1gOnqepfgAuBL6biSBY4AtimqncCiMjRIpKb5BwVwFJVfQC4BvgA5/UYnsQM\nAAfi/C38EThXRIpUNZDEN71DgHdV9WHgIZw3ndok7btnFXr3Y+got5DeiVPgUdV3gVzgqGTmcKdL\ncYZO/EhEThaRf4vIFSJyjPt8Qv6Q3NG78tyH/YFjRKSPqm7BObLfAVyRhAy57sPmf5pTgb8Bm0Xk\nEnCOqJL0OgjwNRHpKyJn4vw9TBGRw91lE5XhayJyjYhMVNXtwMOqut4tqquAxUBhoouKm+MHInK0\nO2sNMEZETheRl4Ebgb+JyDkJzHCUiIwOmfUuMExEhqvqDuBtYCdwZjIyhLzmK4BGYJX7db6I7Juo\nN70wr8ObwFdF5P+A94AhwF0i8tVE7L+tHlHo3X/m53CK+z9FpFJVl6rqbhFpHjzFB3yU5Bwnq+om\nYCXwGPAN9/sg4Ab3TSmuf0giUi4iLwD3Ag+LyFhVXYFzJP0Dd7ENOMX+MBEZkuAM/xL3HIm7nw+B\ntThH9D9y3/iGJel1eA+n6egv7tevgeHAL0RkdAIyZLr/uNfhjEt/n4icoaobAFS1QUSGAvsBNQks\nKqE5AO4Rka8AW4D/4PxdzFDVqThNKCeKyIFxzlDi/m+8jPNm2zy6dT3wFvA19/FyYAnQP+QNOlEZ\n+oS85hNwfgeLcd54bwTudpva4lYHO3odVPUDYCpQDlymqpNx3vSmishB8dp/Rzxb6Nsc/fwQ+EBV\njwaeBr4dZpU83I/p8TxyipDjYnf+X4HDgVdV9d84TRcrgGMSlOEdVZ2C80/7cxEZCzwAHCUi+6mq\nD9iE809WkIQMvwRGu0f3A3FOSJ+L06Q1SFWrJQ5t9ZEyuMX8Zzj/yGep6kM4H9VXAZNi3X9b7ifL\nMcA1qvoHnOJxVZt/3Eo3504R6SMiA5KQ4ybgUpzmioXAwTj/HwCv4TQv7YlzjD44Q4de6U4f787f\nAswFDnE/8fiBdcAkVa1PUgaAz4AiEXkUpyVgAfCxqjbFuXmzbYbjmp9Q1Xk4/x+r3VmJ+l2049lC\nj/uH6f5z7wGa3Pl9gaUhR5E+cU48blTVz0TkMmC6iMTrEqbOcixxj9rfAmbhnGBBVbcBZTgFJ54Z\nmj+9LHH3cwcwETgHp114HvBb97lFOCe/GpKU4QKcwu53cxQCJwL7isihcTpv0VmGCuAi9+isHvcI\nMuR3sSQO+0dEzhORE0SkxJ21CegnIlmq+qS7n6+LSLb7fBHwvohcBLyPc2SZ6BxP4FwY8CWco+nf\nAle7r83JOE19MRfZkAzFqroO54KEx9xtTxSRMvf3/j+cn/029wj3YOAzEYn5ICRChiPdT1TgnPgc\nCGzEOSi7FKdZK+aj6a5mcA+E/gtc7q46BdiHOPwuIvFcoRennftl4FYR+Zr70estYJSIvI/z8ScT\np+nkVHe1ccBYEZkNTANeU9W9ScrxsIicBHwfyBORX4nI/3AKXkx97IfJ4AO2A4eLyHgRGQ8swvk4\nmInTVFEmIn8WkUXu/nfF8gmnixkW4xTTYuDfwARV/Y7blPJ/OG2yUevG6zAcGI0zVvEXRORWEXkT\n5815ZQz7FxEZIiJVwPk4n1budIvWVpwTbc1NFX8GvozTpzg4bzi34VwFdJaqvpikHH8Cvg7kqurv\ncI5g/47TvHi1ey4nXhnuFpEBqlqvqnXAKziF9UQAVd2kqrcD7wD34xwQ3eIum+gMU9wMi4ALVfVq\nVd2N80njm6q6NIkZGoBncc7XvIFzgHaFqm6OJkO3qKpnvoADcP4YpuG86/4L+KH73BjgyZBlfwb8\n2Z2+Fued+uQU5bjDnR4EHAl8MQEZHgEuwzlC/BnOJ4i3cI4Q/wV8z12vFKfJ6EtJzjATuDRk3Qwg\nI8kZHsH5xwE4DPgO8OUY95/pfh8N/LN5HnA3TtEqAV7EaSYocJ9/NOT38X3gjDi8DtHm+IE7LThX\nZiUiw59D/ydCfu5f4XzyLQpZtihFGfqELBvT32WUGUqAfHdePrBfrH8T3cqczJ118KIFCwLOu+Jd\nIc9dhHM0WIrzset24CD3uWOBx90/4H5eyJHgDBe7GQa6j/cLee5y4BJ3OqYcPTzDFc0Z4vC7aP6E\ndAvO0fjpwINtnt+M0wxxHs410l93n3sYODJdcnQhQwbOgdYJIfMKcc6PzMNpVhrayzO862Yoi8ff\nRXe/Utp0IyIXAtU4J/PAuWrmbBFpvrs0G+cj9y9xbnjoj3Oy62qcE6CvqmNHinO8Esv+u5ghC/gU\npxkAnBOMiMh0nOL3HsR2R2waZLioOUMsROQEnKaOfjgn1X+J0/xTKSITIXgC9OfArar6D+Al4Dy3\nWS+LOFwB5oUcXcwQwDkBfFPIqqfhfPJaCByiqut7eYYP3Azros0Qk1S8u4S80z0NXI3zz3mgO/+P\nOB/B3wb+idPu+ALOGeyDcM5mPwgclS45upnhOaDUff57OEcKn7MM8cngbu844Fshj+/COXl3AbDA\nnZcBDMb5NDfcnTeYOH4k90KObmZ4DCh3500DjrcM8csQU/6U7hz2db/PwLlNG5yPR/2BY93Hw3EK\nak465+hGhgdwTrCB2xZrGeKeoQDnBrzmtthzgd+40x8AV7rTE4BHEvh3mfIclsE7GWL5SmnTjap+\n5k7+ERgpIqeq81F0lzqXLAJ8F+eyxoR1K+CFHN3IUIdzcxga5VULliFihjpt3ZXFyThXaYDTpcFB\n4nSQ9QhxaCryco5oMsRylZdlSJBUv9OEvGN+B3g95PFE4BmcS+UG96YclsEbGXCv0MBpsjvAnXcA\nzhUUx5KkE2teyGEZvJMhmi9PDCUoTjeuARF5HOf2/QacE5yfqOqnvSmHZfBUBgFycLpZeArnZO82\nnI/pNcnI4JUclsE7GaKS6neakHfKApz+WrYCV/XmHJbBUxmOAgI41+pfnIoMXslhGbyTobtfzbeS\ne8FlOG1bJ6tzB1lvzmEZvJOhGvgJ8IcU/116IYdl8E6GbvFE0w20fFS3HJbBSxmMSQeeKfTGGGMS\nw3OdmhljjIkvK/TGGJPmrNAbY0yas0JvjDFpzgq96ZVExC8iH4jIYhFZKM7g3p3+P4gzTu03kpXR\nmHixQm96q72qepiqHozTb8nnccZ87Uw5zghNxvQodnml6ZVEpFZVC0Me74fT1fEAnLF2H8Lpkhqc\nUav+KyJzcbqoXoXTk+mfcHrZnIzTs+GdqvrXpP0QxnSRFXrTK7Ut9O68nThDRe4GAqpaLyKjcLqd\nnSAik3GGlPyiu/x0YJCq/kqcgZ/fBr6qqquS+sMYE4GXukAwxiuygTtE5DCcbqlHd7DcKcChInKW\n+7gvMAp31CtjvMIKvTEEm278OOOv3ogzvud4nPNY9R2thtNr4eykhDQmSnYy1vR6IjIQ+Atwhzpt\nmX2BDW4/O9/C6YMcnCadopBVZwOXiki2u53RItIHYzzGjuhNb5UvIh/gNNP4cE6+/sF97i7gCRE5\nD3gRZ2QxgA8Bv4gsxBnK8HacK3Hec/sp3wKckawfwJiuspOxxhiT5qzpxhhj0pwVemOMSXNW6I0x\nJs1ZoTfGmDRnhd4YY9KcFXpjjElzVuiNMSbNWaE3xpg09/+UyaaI6vOMHgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10b6bb198>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "aapl = pd.read_csv(\"data/AAPL.csv\", index_col=0, parse_dates=[0])\n",
    "aapl[\"Adj Close\"].plot(grid=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x10d141320>"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10d14e278>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "aapl[\"Adj Close\"].plot(grid=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "msft = pd.read_csv(\"data/MSFT.csv\", index_col=0, parse_dates=[0])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "尝试一下把三张表格拼接到一起"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AAPL</th>\n",
       "      <th>MSFT</th>\n",
       "      <th>GOOG</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1980-12-12</th>\n",
       "      <td>0.423252</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1980-12-15</th>\n",
       "      <td>0.401170</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1980-12-16</th>\n",
       "      <td>0.371726</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1980-12-17</th>\n",
       "      <td>0.380927</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1980-12-18</th>\n",
       "      <td>0.391969</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                AAPL  MSFT  GOOG\n",
       "Date                            \n",
       "1980-12-12  0.423252   NaN   NaN\n",
       "1980-12-15  0.401170   NaN   NaN\n",
       "1980-12-16  0.371726   NaN   NaN\n",
       "1980-12-17  0.380927   NaN   NaN\n",
       "1980-12-18  0.391969   NaN   NaN"
      ]
     },
     "execution_count": 104,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stocks = pd.concat([aapl[\"Adj Close\"], msft[\"Adj Close\"], goog[\"Adj Close\"]], axis=1)\n",
    "stocks.columns = [\"AAPL\", \"MSFT\", \"GOOG\"]\n",
    "stocks.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "stocks = pd.DataFrame({\"AAPL\": aapl[\"Adj Close\"].bfill(),\n",
    "                      \"MSFT\": msft[\"Adj Close\"].bfill(),\n",
    "                      \"GOOG\": goog[\"Adj Close\"].bfill()})"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>AAPL</th>\n",
       "      <th>MSFT</th>\n",
       "      <th>GOOG</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Date</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>1980-12-12</th>\n",
       "      <td>0.423252</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1980-12-15</th>\n",
       "      <td>0.401170</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1980-12-16</th>\n",
       "      <td>0.371726</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1980-12-17</th>\n",
       "      <td>0.380927</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1980-12-18</th>\n",
       "      <td>0.391969</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                AAPL  MSFT  GOOG\n",
       "Date                            \n",
       "1980-12-12  0.423252   NaN   NaN\n",
       "1980-12-15  0.401170   NaN   NaN\n",
       "1980-12-16  0.371726   NaN   NaN\n",
       "1980-12-17  0.380927   NaN   NaN\n",
       "1980-12-18  0.391969   NaN   NaN"
      ]
     },
     "execution_count": 106,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stocks.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x10d9dd550>"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nMBoo/w+oVOYmqLkHZgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10d9ea240>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# stocks = pd.to_numeric(stocks)\n",
    "stocks.plot(grid=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "valid_stocks = stocks[stocks.index >= stocks[\"GOOG\"].first_valid_index()]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x10b469898>"
      ]
     },
     "execution_count": 109,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYAAAAEACAYAAAC6d6FnAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd4VMXawH+zm02vhBBKAgFC7xBQBCSIAQUUEPUiKqhc\nsSDqvVfBcu1Xxa732hD1E0VBwIZIEYEoCCgECAEpIdSEkpCQ3nfn++PsnmSzm5BeyPyeJ0/mzMyZ\n855Ndt4p77yvkFKiUCgUiuaHoaEFUCgUCkXDoBSAQqFQNFOUAlAoFIpmilIACoVC0UxRCkChUCia\nKUoBKBQKRTNFKQCFQqFopigFoFAoFM0UpQAUCoWimaIUgEKhUDRTXBpagIpo2bKlDAsLq7P2c3Jy\n8PLyqrP265KmLDs0bfmV7A2Dkr3yxMTEnJdSBl2sXqNWAGFhYezcubPO2o+OjiYyMrLO2q9LmrLs\n0LTlV7I3DEr2yiOEOFGZehddAhJCfCqESBZC7CuV10IIsV4IEW/9HWDNF0KI/wohjggh9gohBpa6\nZ4a1frwQYkZ1XkqhUCgUtUdl9gA+A64pk/cYsEFK2QXYYL0GuBboYv2ZBXwAmsIAngEuA4YAz9iU\nhkKhUCgahosqACnlb0BameyJwCJrehEwqVT+51JjO+AvhGgDjAXWSynTpJQXgPU4KhWFQqFQ1CPV\n3QMIllKesabPAsHWdDvgVKl6ida88vKrTFFREYmJieTn51fndjv8/Pw4cOBAjdtpCLy9vSkqKsJk\nMjW0KAqFoolS401gKaUUQtRaVBkhxCy05SOCg4OJjo62K/f29iY4OJh27dohhKjRs8xmM0ajsUZt\nNARSSi5cuEBsbCzZ2dkNLU61yM7OdvjbNhWU7A2Dkr32qa4COCeEaCOlPGNd4km25icBoaXqhVjz\nkoDIMvnRzhqWUn4EfAQQEREhy+6cHzhwgJCQkBp3/gBZWVn4+PjUuJ2GIjc3l4iIiIYWo1ooi46G\nQcneMFRG9rT8NAqKC2jj3aZ+hKL6B8FWAjZLnhnAD6Xyp1utgS4HMqxLReuAMUKIAOvm7xhrXrWo\njc6/qaM+A4Xi0mLk1yMZ882Yen1mZcxAlwDbgG5CiEQhxExgPhAlhIgHrrZeA6wGjgJHgIXA/QBS\nyjTgBWCH9ed5a16T5fvvv0cIwcGDB+3y3377bdzd3cnIyNDzoqOj8fPzo3///vTo0YPnnntOz58w\nYUK9yq1QKBof2YUNs5RbGSugW6SUbaSUJilliJTyEyllqpRytJSyi5TyaltnbrX+mS2l7Cyl7COl\n3FmqnU+llOHWn/+ry5eqD5YsWcLw4cNZsmSJQ/7gwYP59ttv7fJHjBjBnj172LlzJ4sXL2bXrl31\nKa5CoWjEfBP/jd31vb/cy6L9i8qpXXsoX0DVIDs7my1btvDJJ5+wdOlSPT8hIYHs7Gz+85//OCgG\nG15eXgwaNIgjR47Ul7gKhaKRk16QrqenrJzC70m/8/rO1+v8uY3aFcTFeO7H/fx1OrPa9zuzAurZ\n1pdnrutV4X0//PAD11xzDV27diUwMJCYmBgGDRrE0qVLmTp1KiNGjODQoUOcO3eO4OBgu3tTU1PZ\nvn07Tz31FCkpKdWWXaFQXDp4mUr8BB2+cBiAO3rdUefPVTOAarBkyRKmTp0KwNSpU/XRvi3fYDAw\nZcoUli9frt+zefNmBgwYwJgxY3jsscfo1atiJaNQKJoPuUW5DnmxKbF1/twmPQO42Ej9YlTHDDQt\nLY2NGzcSFxeHEAKz2YwQghkzZhAfH09UVBQAhYWFdOzYkQceeADQ9gBWrVpVI3kVCsWlSeklIBtj\nw8bW+XPVDKCKrFixgttvv50TJ05w/PhxTp06RceOHXnooYd49tlnOX78OMePH+f06dOcPn2aEycq\n5ZRPoVA0U8wWM8sPL3fIHxQ8qM6frRRAFVmyZAmTJ0+2y5syZQrHjh1zyJ88ebLdJrEzNmzYQEhI\niP6zbdu2WpdZoVA0Xk5lnXKa7250r/NnN+kloIZg06ZNDnkPPvggDz74oEP+m2++qaednQKMjIwk\nLy+vVuVTKBRNi+u+v05PP3fFczyz9RkAPFw86vzZagagUCgUjYS23m31tI9r3bupUQpAoVAoGglu\nRjc97WnyrPPnKQWgUCgUDYi3yRuAl0e8jKvRtV6frRSAQqFQNBBZhVlkF2Xzj0H/YEKnCXgY637d\nvzRKASgUCkUDcTr7NADtvLX4WPWx7l8apQAUCoWigSg0FwIlFj8t3FvU6/OVAqgGQghuu+02/bq4\nuJigoCDdtfO5c+eYMGEC/fr1o2fPnowbNw6A48eP4+HhQf/+/fWfBQsW6GlXV1f69OlD//79eeyx\nxxrk3RQKRf1hlmYADELrio0GI/MGz2PJeOfOJGsbdQ6gGnh5ebFv3z7y8vLw8PBg/fr1tGtXEuL4\n6aefJioqioceegiAvXv36mWdO3dmz549du3dc889AISFhbFp0yZatmxZD2+hUCgaGou0ACUKAOC2\nnreVV73WUTOAajJu3Dh++uknQDsdfMstt+hlZ86cISQkRL/u27dvvcunUCgaP7YZgFE0TGzypj0D\nWPMYnI2r9u0e5mIwlvkIWveBa+c7v6EUU6dO5fnnn2fChAns3buXu+66i82bNwMwe/Zs/va3v/Hu\nu+9y9dVXc+edd9K2rXbAIyEhgf79+wMwbNgw3nvvvWrLr1AomjbOZgD1SdNWAA1I3759OX78OEuW\nLNHX+G2MHTuWo0ePsnbtWtasWcOAAQPYt28f4HwJSKFQNE+KLEUAmAymBnl+01YAlRipV0ReNdxB\nl+b666/nkUceITo6mtTUVLuyFi1aMG3aNKZNm8aECRP47bffGDSo7r37KRSKpkNWYRYAvq6+DfJ8\ntQdQA+666y6eeeYZ+vTpY5e/ceNGcnO1AA9ZWVkkJCTQvn37hhBRoVA0YjIKMgDwdWsYBdC0ZwAN\nTEhIiFMvoDExMTzwwAO4uLhgsVj4+9//zuDBgzl+/Hj9C6lQKBodh9IO0dKjpa4A/Fz9GkQOpQCq\nQXZ2tkNeZGSk7vL50Ucf5dFHH3WoExYWpu8FOEMpCIXi0kdKyY0/3oi3yZsbutyAh4sHJmPD7AGo\nJSCFQqGoR2yxfrOLsskoyMDPrWFG/6AUgEKhUNQ5Ukq2nt6K2WJm/Yn1ev4PCT/Q2rN1g8mlloAU\nCoWijjmYf5D317/PhE4TWHV0lV1Ze9+GMxBRMwCFQqGoYzLM2mZv2c4fIMQnxCGvvlAKQKFQKOoY\niSy3zNVQv0FgSlMjBSCE+IcQYr8QYp8QYokQwl0I0VEI8YcQ4ogQ4mshhKu1rpv1+oi1PKw2XkCh\nUCgaE4fSDiGlfYdvc/lgI8gjCIAxHcZwR6876ks0B6qtAIQQ7YAHgQgpZW/ACEwFXgHeklKGAxeA\nmdZbZgIXrPlvWes1Wc6dO8e0adPo1KkTgwYNYujQoXz33XcAbNmyhSFDhtC9e3e6d+/ORx99ZHfv\nRx99pJcNGTKELVu26GXFxcU88cQTdOnSRXcT/eKLL9bruykUiurx55k/ufHHG1l+eLld/uqM1Xr6\nhWEv8OTlT9LaqzUvjXgJo6FhHMFBzZeAXAAPIYQL4AmcAa4CVljLFwGTrOmJ1mus5aOFEKKGz28Q\npJRMmjSJK6+8kqNHjxITE8PSpUtJTEzk7NmzTJs2jQ8//JCDBw+yZcsWFixYoHsOXbVqFQsWLGDL\nli0cPHiQDz/8kGnTpnH27FkA/v3vf3P69Gni4uLYs2cPmzdvpqioqCFfV6FQVJKEjAQA9p0vOe+z\naP8iMs2Z+nWYbxij249m/Y3r7YLANwTVVgBSyiTgdeAkWsefAcQA6VLKYmu1RMDmKL8dcMp6b7G1\nfmB1n9+QbNy4EVdXV+699149r0OHDsyZM4f33nuPO+64g4EDBwLQsmVLXn31VebP1/wWvfLKK7z2\n2mu6z/+BAwcyY8YM3nvvPXJzc1m4cCH/+9//cHd3B8DHx4dnn322fl9QoVBUi5f+eAkoWfP/+fjP\n/HT0J7s6DWn1U5Zqm4EKIQLQRvUdgXRgOXBNTQUSQswCZgEEBwcTHR1tV+7n50dWluZA6e3Yt4nP\niK/2s6SUlJ2EdPHrwsP9Hq7wvpiYGHr37q3LUZrY2FimTZtmV9atWzf27dtHVlYW+/bto2vXrnbl\nvXr14quvviI2NlaPI+Cs7dKYzWby8/MdPp+mQnZ2tpK9AVCy1w8JSQlER0fzrxP/cijbu32vkzsa\nhpqcA7gaOCalTAEQQnwLDAP8hRAu1lF+CJBkrZ8EhAKJ1iUjPyC1bKNSyo+AjwAiIiKkzb2CjQMH\nDugePF1dXTEaq79+ZjabHe53dXW9qIdQd3d3u3qzZ89my5YtuLq6EhoaioeHh10bFosFIQQ+Pj76\n79LlHh4euLi44OXlhcFg0Mv+7//+j3feeYfU1FS2bt1KaGiofk9WVhbu7u4MGDCg2u/fkERHR1P2\nb9tUULI3DI1R9oyCDLxMXhSYC/h036d6flxeHImtEuFESd21U9YCJQHgGwM1UQAngcuFEJ5AHjAa\n2AlsAm4ElgIzgB+s9Vdar7dZyzfKslvlVWTekHk1uZ2sarqD7tWrF998841+/d5773H+/HkiIiIY\nO3YsMTExTJw4US+PiYmhV69eAPTs2ZOYmBiuuuoqh/Lw8HBOnjypy3XnnXdy55130rt3b8xmcw3e\nVKFQ1DYnM08y/rvxjG4/Gn83f76J/8au/Psj39tdN6aO30ZN9gD+QNvM3QXEWdv6CJgH/FMIcQRt\njf8T6y2fAIHW/H8CTTbq+VVXXUV+fj4ffPCBnmdz/zx79mw+++wzPehLamoq8+bNY+7cuQDMnTuX\nefPm6fED9uzZw2effcb999+Pp6cnM2fO5IEHHiA/Px/QZimFhYX1+XoKRbNi3/l9fL7/8yrftyt5\nFwAbTm5w6PyhJNxjY6ZGriCklM8Az5TJPgoMcVI3H7ipJs9rLAgh+P777/nHP/7Bq6++SlBQEF5e\nXrzyyiu0adOGxYsXc/fdd5OVlYWUkocffpjrrrsO0ILIJCUlccUVV+jLQYsXL6ZNmzYAvPjiizz1\n1FP07t0bHx8fPDw8mDFjhh5SUqFQ1C63/KTF87695+0Oe4IV8dTvT1VYfiT9SI3kqg+UL6Bq0qZN\nG5YuXeq07Morr2THjh3l3nvfffdx3333OS0zmUzMnz9ftxpSKBR1w2+JvzF7w2z9Orc4l3XH1zEp\nfJIeozc2JZbXd7zOx2M/rpTJ5r8G/Ys3Yt6wy7uz1514n/euXeFrCeUKQqFQNEue3/a83fW7u9/l\nma3PsO74Oj3v31v+zZ6UPRy54DiaD/cPJ6pDFE8PfVrPm95rusNa/9TuU+nq3rWWpa8dlAJQKBTN\njkJzIedyz9nlHc88DkBOUY5D3od7P3Roo9hSjFEYub7z9QAMazsMgzCwcMxCu3oB7gG1KHntopaA\nFApFs8MWirE0ybnJALgYtG5xxpoZelmoT6hDfbM0YzQYcTO6ETcjTs9v7WXv39/DxaNWZK4LmuQM\noIbWo5cE6jNQKKpPvjnfIe/whcMABLoHIqXUrXwABrSyP2+TX5zPqaxTDk7eAEyGkvCOA1sNrC2R\n64QmpwDc3d1JTU1t1h2glJKMjAzdXYRCoagamYWZ5ZaZjCaWHrI38LBICzlFOZzN0Xx23bb6NgDW\nHFtT4XMWXbuowvKGpsktAYWEhJCYmEhKSkqN28rPz2+ynWhOTg79+vVraDEUiibJ1FVTAZgUPolD\naYc4kHZALzNbzMRfsHcxI6VkwncTOJ93nrgZcQwKHsShC4dYELWg3Gd0C+hWN8LXIk1OAZhMJjp2\n7FgrbUVHRzdpVwomk+niFRUKhR2lN3n7BfXjhWEv0GdRHz3PLM26O+d7+93Lh7EfYpEWzuedB+Db\n+G8xCANeJi+uaHuF02f8eeufuIjG3702uSUghUKhqAmlrX/83fwdyossmvt1ozAyvuN4AOZtLnE7\n88zWZ/gh4Qc7RVIWDxcPTMbGP0BTCkChUDQrlh8qCdYyMmSkQ/m7u98FYHi74bganYdrzCqs2Ftv\nU6Hxz1EUCoWiFll8YDEAN3W9yeko3ebC4ULBBdp6O3fB4iJcmNZjWt0JWU+oGYBCoWiWPHnZkxWW\nWyyOJp42imUxHXw71LZI9Y6aASgUimZFG682dGvR7aKxeAssBRWWt3BvUZtiNQhqBqBQKJodfq5+\nF61jKNM9jm4/Gh9TSfyQ0qajTRWlABQKRbPCIi26t08b313/HdeElUS0be/TnqeG2rt7fu6K54gM\njdSv7+5zd53KWR8oBaBQKJoVUkoHBRAeEM4jEY/o1ysnraRfkHbQcv2N6/l5ys/4ufkxZ8AcvY67\nS9M8RFoatQegUCiaFRYsTgO/BHkG6enS+wOlnbu5uVw8JkBTQs0AFArFJUdGQQY3rLzBwaUDWJeA\nnHR9BmHg+Suer9C9Q2WCwjQllAJQKBSXHLvO7SL+Qjxv7LSPzlVkKSItP43U/FSn903uMrlc9w4A\nXiYvwN7jZ1NGKQCFQnHJYVvO+f307/RZ1IfYlFgA1h5bC2iB3KvL59d+zg8Tf6i5kI0ApQAUCsUl\nj81985mcMzVua0CrAYT6OgaIaYooBaBQKC45ysYLmdZdc9twqfjwqS2UAlAoFJccEnsF4Ofmx6aT\nm/hs/2cNI1AjRZmBKhSKS46yCuCD2A/srm/rcVt9itNoUTMAhUJxyVFRyNjL21zO3MFz61GaxotS\nAAqFollxY9cbnR4Ea44oBaBQKC45yi4BlcbH1afcsuZGjRSAEMJfCLFCCHFQCHFACDFUCNFCCLFe\nCBFv/R1grSuEEP8VQhwRQuwVQgysnVdQKBQKe2xLQBM7T3Qo83DxqG9xGi01nQG8A6yVUnYH+gEH\ngMeADVLKLsAG6zXAtUAX688s4APH5hQKxaWARVqwyPIDqtQ1thnA+E7jHcouNXcONaHaCkAI4Qdc\nCXwCIKUslFKmAxOBRdZqi4BJ1vRE4HOpsR3wF0K0qbbkCoWiUSKlpN/n/ej3eT9izsU0mAyA07V+\npQBKqMkMoCOQAvyfEGK3EOJjIYQXECyltB23OwsEW9PtgFOl7k+05ikUikuIl/54SU/fsfaOBpHB\nNgMQKAVQETU5B+ACDATmSCn/EEK8Q8lyDwBSSimEKH83xglCiFloS0QEBwcTHR1dAxErJjs7u07b\nr0uasuzQtOVXslfMxqSNdtfrNq7DzeDY6SbkJ7A+cz2zgmZhEAaOFRzjXNE5Lve+3Gm7VZE9Pl/z\nAhobG+tQFvNHDEdcjlSqndqisf7P1EQBJAKJUso/rNcr0BTAOSFEGynlGesST7K1PAko7UAjxJpn\nh5TyI+AjgIiICBkZGVkDESsmOjqaumy/LmnKskPTll/JXj5nss+QfCKZQcGD9OWfHhE9aO/b3qHu\nnEVacJUzrc8wpcsU5nypXT824TGHulA12T3PeMLPMKD/AFin5X1x7RcsPbSUCcMmXDQecG3TWP9n\nqr0EJKU8C5wSQnSzZo0G/gJWAjOseTMAm9u8lcB0qzXQ5UBGqaUihUJxCXDjjzcC2K39ZxRkONTb\nk7xHT8//cz6DvxysX+88u7PGcjgzA+3fqj/zR8yv986/MVNTK6A5wJdCiL1Af+AlYD4QJYSIB662\nXgOsBo4CR4CFwP01fLZCoWhEJGUnkVmYCcCwdsOY0mUKAMcyj9nVk1Jy+5rby21n+eHlNZal9B5A\nr8Bel4z//tqmRr6ApJR7gAgnRaOd1JXA7Jo8T6FQNF6u+aYkqPrQNkMZGTKSb+K/ISnLfqXX5pu/\nPFYfW80rV75SYZ1Ry0Zxa49b+XufvzstN1vMALgYXFgyfok6+VsO6iSwQqGoMc5877T0aAnA+7Hv\n63kX8i/gYrj4uDMhPaHcsmJLMefzzvPOrne4YeUNTuuYpaYAjMKoOv8KUApAoVDUmLziPLvr3i17\n2wVQ33d+H4XmQq78+kpu+ekWAPq07GN3z4rrVujplLyUcp91If+Cno6/EM8L215gyJdD7OqczTkL\naHF+FeWjPh2FQlFjLvvqMrvrQcGD7NbdZ6yZQVp+ml2d/wz7D/NHaFuEH1z9Ad1adOORiEcAeOTX\nR3h397tOn3U+77zd9bLDy8grztOXfQA9GLyr0bWab9Q8UApAoVDUiLIdsjMKLYWkF6Tb5bX3bc/4\nTuOJmxHH8HbDAegZ2BPQLIcW7F3g1J1EebOD0vkhPiEAtPFSzgYqQikAhUJRIxKzEsstiwgusREp\nOwNwthfg6eJpd734r8V218m5ycze4NyWJP5CPLlFuQD6b+X4rWJURDCFQlEjnt36LABLxi8h3D/c\nbtO1tM19en562Vsd8DDZd9iv7XyNPkF9GNBqABnFGSw9uFQva+XRiuS8ZP36/g2aZXnvwN7sS92H\nm9FN2fxfBDUDUCgU1cZsMZOQoVns+Lr64u7ibudr58p2V+rpA2kHAFg4ZiFLxy/FGR5GxxH79DXT\n2XhyI4tTF7MwbqGev3DMQoe6APtS92ltqdH/RVEKQKFQVJuX/3xZT9vMPktza49b9bQtIPtlrS+j\nV8teTtvzcvXS06WXiB7a9BAH8w/a1W3r3bZC2dxd3CssVygFoFAoasDXh74GYHDrwXiaPB3KnS3B\nVGSX7+vqq6d337673HovDX8Jdxd3vr3+W7v80krDZgqqKB+lABQKRZU5m3OWjSdLvH5+PObjcuv+\nMPGHcssuxr397nWaf13n6wAI8wujb8u+TOs+jS/Hfcmf0/7k5REvO71H4YjaBFYoFFUmakWUng71\nCa3wwFWAe4CevryNc1fP5TEpfBIfxn5ol3dZm5IzByaDiS/Hf2lXPr7jeL4++DVdArpU6VnNEaUA\nFApFlSjr9sHm9K08AtwDuKHLDXwb/y03dr2xUs8IcNOURlsvx3X+MN+wCu8VQvDFuC8q9ZzmjlIA\nCoWiSvya+Kvd9R297rjoPU9e9iSRIZFEhkZetO62W7bpMwpn+wWPDn60UnIqLo5SAAqFokqU9u//\n/uj3K2Vr72p0ZVT7UZVq39vVu9yyWX1nqZCOtYhSAAqFokrYLHWWTlhKr0Dn5px1hbepfOWgqDpK\nASgUiipRUcD1uiBuRhxF5iKeW/Ucf+v2t3p5ZnNBmYEqFIoqYdsErk9Xyyajiav9rnZ61kBRfZQC\nUCgUVaK+ZwCKukMpAIVCUSV0BaAibTV5lAJQKBROySrMIi4lziHf5qNfzQCaPkoBKBQKADILM/l8\n/+f6Gv/Dmx5m2uppDgFfbDMAFW6x6aP+ggqFAoB/Rf+L13a+xgvbX+B83nn+PPsnAKOWjSIpOwkp\nJc9ufZbswmxAzQAuBZQZqEKhAKCDbwe2n9nO8sPLWX54uV3Zo78+ilEY2ZOyh2/ivwEgz5znrBlF\nE0IpAIVCAYCPq0+5ZXHnHfcCii3FdSmOoh5QS0AKhQKAj+McXTpPDp9cbv2+LfvWpTiKekApAIVC\nUS7PD3uead2n6dddA7rqaWUG2vRRCkChUDi4eJ7WfRrfXf8dAOEB4Xr+3MFz61UuRd1SYwUghDAK\nIXYLIVZZrzsKIf4QQhwRQnwthHC15rtZr49Yy8Nq+myFQlF9Vhxewa+nNNfOWUVZADzQ/wFip8fy\n+GWP6x1/aX//3Vt0583IN/lhUvWjfCkaD7WxCfwQcACwBfN8BXhLSrlUCPEhMBP4wPr7gpQyXAgx\n1VpPeXZSKBqI57Y9B8De6Xt1W/+23m0d7PsNwkDs9Fjyi/PxNHkS1SHKoS1F06RGMwAhRAgwHvjY\nei2Aq4AV1iqLgEnW9ETrNdby0UItIioUDYLZYtbTn//1OW/FvAXY+/ovjUEYlCO2S5CazgDeBuYC\nNvuxQCBdSmmzD0sE2lnT7YBTAFLKYiFEhrW+/TFDhUJR59g6fIDXd76up23B1hXNg2orACHEBCBZ\nShkjhIisLYGEELOAWQDBwcFER0fXVtMOZGdn12n7dUlTlh2atvxNXfZNmzax6OQip+W7t+2uZ4kq\nT1P/3Buj7DWZAQwDrhdCjAPc0fYA3gH8hRAu1llACJBkrZ8EhAKJQggXwA9ILduolPIj4COAiIgI\nGRkZWQMRKyY6Opq6bL8uacqyQ9OWv6nLntwmGU5q189f8TxPb31aL2/M79XUP/fGKHu19wCklI9L\nKUOklGHAVGCjlPJWYBNwo7XaDMBmLrDSeo21fKMsa3umUChqTHZhNpmFmU7LpJS8sP0FAN6MfJPJ\nXUoOegV5BNWLfIrGQ12cA5gH/FMIcQRtjf8Ta/4nQKA1/5/AY3XwbIWi2TN0yVCGLRnmtMxMyeav\nzZpnzoA5AAwKHlT3wikaFbXiC0hKGQ1EW9NHgSFO6uQDN9XG8xQKhXMOpB7Q0/esv4cFUQvsyrdm\nb3W4Z1bfWYT7hzOktcPXVnGJo04CK9h2ehv3/3K/HuhD0XQ5kFaiALaetu/sP9v3GcvTNC+fP0/5\n2a7sqvZX4e3qXfcCKhoVyhuogjkb51BgLiC9IJ0W7i0aWhxFDYi/EK+nO/t11tPFlmLeiHlDv27j\n3aZe5VI0TtQMQEGBuQCA/ef3c/8v9+sBPxRNj8TsRLoEdCHMN4wuAV30/AFfDGhAqRSNFaUAFDr/\n/v3fbE7azNAlQ9mbsrehxVFUkYT0BKJPRRPsGYyLwUX3129T8ApFWZQCUOik5afp6Td2vlFBTUVj\n5IktTwCQV5ynK4AicxERiyPs6vUL6tcQ4ikaIWoPQOEUtSHctMgvzuev1L8AuDbsWpYcXEJ0YjTz\nNs/T6zw08CE6nO/AiBEjGkpMRSNDzQCaOXuS9zjNL7IU1bMkCou06F45q8rgLwfr6Zu73UxybjIA\n60+s1/Pv7HUnJmHC3cW9ZoIqLhmUAmjmfHXwK6f5Zml2mq+oO/6767+MWjaKC/kXqnRf6QP1Lwx7\nASEESyYssauz4OoFGA3GWpFTcemgFEAzZ1Ar+9Ofm27eRAffDhxMO8jKhJUNJFXzZEW85kW99F6M\n2WKmz6IJj/KOAAAgAElEQVQ+9FnUhxOZJ5zel5qvudS6tcetTOw8EYAOvh3s6vQM7FkXIiuaOEoB\nNHM+/+tzu+uWHi31jubJLU82hEiNGiklGzI2kJSddPHKVcTmi/9/u/+n573858t6+p719zi9775f\n7gNgeLvhdnF6v57wNQDjOo7D392/1uVVNH2UAmjGJGUncTLrpEN+W6+2AHiZvOpbpBpzKvMU0aei\na629+Avx7E4ucZF8NOMo36d/z+xfZtNnUZ9KmctezOdhkbmIPov66NcbTm4goyADKSX7z+/X85Oy\nk1h1dBXbz2zX805lneJg2kEABrYaaNduz8CebJm6hf8M/89FZVQ0T5QCaMak5KY4zf9y/JcAjG4/\nuj7FqTEZBRmM+24cczbOIbcot8btTV8znRtW3sD0NdN1q6hlh5YBkJCRAMCtq2+tsI0iSxF9P+/L\n45sfd1q+4+wOxn833iE/tyiXCd9NYF/qPrv8xzc/zt0/361fH8s4BsAVba9wGrHLz80Pk8FUoYyK\n5otSAM2YszlnAegd2Jvdt+9m9+3aSLelR0vC/cNrpROtT0r7wSnPHXJlyS7Mthv5p+SmsPX0Vqeb\n5uVZUoE2QgdYdXSVQ1lybjJ3rbuLMzln9Ly+LfsCMOabMfrszNPFsWPPKcoB4OFNDwMwrfu0i76T\nQlEWpQCaMbaOZ+GYhbgYXHAxlBwL8TJ5kVWY5fS+N2Pe5LfE3+pFxspitpjtRsYfx33sUGfZoWX6\niPlilO6UAcZ9O67cNfi3Yt7Sl2HKcutPJTOE0i42UnJTGL28ZIYV6hNK3Iw4JoZPdGhjStcpDnk/\nH/+ZnWd36ua6Q9ooT56KqqMUQDPm+yPfAzj1AtnBtwNHM4465GcUZPB/+/6P2Ru0NfD39rxX53Je\njCJLEf2/6G+X9/UhbQNUSsnu5N3kF+fzwvYX7JRERRSaCwF4cMCD2rWlUC97MPhBXrvyNf689U8A\ndiXv4qYfb2LjyY0O7QR7Buvp9IJ0PX3V8qvs6uUV5wFgFCWmmntu38ObkW/yj0H/4NOxn+Lv5k8r\nz1YAPL31ae5cdycAXQO64uHiUan3UihKoxRAM8ZZB1+alLwUisz2B8Lyi/Ptrj+M/bDcvYT6onTw\nky1Tt+jp83nn2Xp6K9PXTOexzVr8IZt/nIthOwfR0a+jXX7s9Fi6uHfhmo7X4OHiYedw7aFNDzm0\nMzC4ZGP2m/hvyn2eTQGUNt80GoxEdYjCZDAxuPVgNk/dzC83/uJwb2kPoApFVVAKoJlisy7pH9Tf\nabntDMCz2561y7d1VKWZ+9vc2hWuCuQV5+kyrZ68Gj83P2b3nw1o1jWf7f8M0CxrANp6t61Uu7ZN\nX3cXd+aPmA9AZGgkBmH/lWnj1cbpfc6uSy9LDWw1kBbuLVhwtRawxTbjsPnpKS88Y2kzTxvOlogU\nisqgFEAzYc7GOTyx+Qn9+s+z2vLFS8NfqvC+sofBnvr9KYc6O8/tZPaG2bUgZdXYcGIDQ77U1r4f\nHvgwob6hALTzbgdoo/2yh6fizsdVqm1bx20QBt2KxpkTte4tugPQ3qc94HiC2uaSwUaRuYiE9AQK\nzYX0aNGDoW2HclPXm/go6iMATEYT313/HT9O/rFc2XbdvktPvzbyNZ4Z+kyl3kmhKItyBtcM2Jq0\nVbeNf2mE1uGn5afhZnQjxCfE6T1zBszRDyRJKfWR554U5xYvvyX+ZlevPvjuyHd6+uoOV+tpm9XM\nuO/GOb2v0FyIq9G1wraXHNRcKeQV5RHVIYrXR77O1e2vdqh3b797Gd1+NFtPb+WdXe8w8IuBzB08\nl9t73k5Kbgqbkzbb1R+4uGRJaHL4ZIQQPD30abs64QHhFcpmMpj4Y9ofuBndlHsHRY1QM4BLHLPF\nzD2/lFivxKbEkpybzGf7P6PAXFBuhz2r7yzcjG6Ats5fltWTV+ujVhsfxH5Qi5JfnNS8VD0d4l2i\nyAa3GWxXr513O+JmxPHi8BcBeGDDAxW2m5CewNrjawHoG9QXIQRjw8Y67WxNBhM9A3viIkrGUq/u\neJVX/nyFxOxEPW9MhzEO97b2al2hHBXhafJUnb+ixigFcAlzNOOog3XMbatvszM/rAhbIJH3Y9/X\n8wLdA5kcPplQ31CGth3Kf0f9Vy+zHZKqD3KKctiXuo/LWl/Gp2M/tesMfV197erO7DMTgMHBmmLY\ndmab7nbBGU9vLRmRB3k6X4svi806x8biA4v5YE+JQuzdsrfDPTVRAApFbaAUQBPBbDFzz/p79KWc\nM4Vn2HByg9NNWRtrjq3R085GoE9d7riefzEk0u5k6aj2o/h07KeAZsHSZ1EfjqZXbF1UG8SmxAIw\nMnQkg1sPdiiPmxFH3Iw4dt++m5u63gTYx8G9/vvriU2J1d00fLDnAx7cqJl82tw7/DT5p0rLMzZs\nLLf1uI03I9/U87ad2YaLwYW90/cicJxplTYRVSgaAqUAmgi7knex9fRW5mycA8AnKZ/w8KaHGfLl\nEAdTTRvfHv5WT5f1B/PggAf1jrEy2E4FW6TFYdnI5mlyV7K2ObkwbmGl260OR9OP6oeyhrSu+ABU\n6cNtpUnLT+O21bfx5JYnWXtsLe/Hvs+mU5u4kH+BII8g+gf1p71v+0rLZDQYmTdkHlEdooibUbLR\n7CJcEELoB7bu7HWnbloa6BFY6fYVirpAKYAmwPw/59tZ2dz8482cKz6nX2cUlixn5Bbl8um+T8kp\nyiE5T7NA2T5tOx4uHuy4dYde7+6+d190w3ZGzxl62mbNYpEWB1PI0oeXwLnbg9rEtkELOPV/UxHj\nOtpvDP949Ece/e1R/frJLU+SkpdSY/fJD/TX9hnyzdq5iWAvbbTfv1V/nrr8KXq06EGYb1iNnqFQ\n1BSlAOqIInMR646vu6gnyMrw5YEv7ZZ6Svu8ARi1bBR7kvdwNucsl311GW/FvMXlX10OaNY8Nq+e\n7i7ubJm6xe6wVEU8MvgRXh/5OgB7z+9l0f5FZBZmOnT4zkbZdRVScmvSVt3twqjQUbrJZ2V5ecTL\nFZbbrHbKs46qLDd0ucHuekKnCSy/bjlXtb+Kwa0Hs+y6ZSoyl6LBUWagdcRDmx5ic9JmojpE2a0L\nV5WyJ29DfUJ1B2PXhF2jW6vM/W2ug/8agGHthtld+7n5Ven5ttPCpWMDXCiwj1jlTAF88dcXzOg1\nwyG/Jrwd8zaf7PsE0DrY5654rsptGISBm7rexPLDyyusN7X71GrJaCPIM4i7+9ytnwQ2CIN+ZkCh\naCyoGUAdYfMdU3a0XFVs/mNGhY5i7/S9uikj2B/iKt3539//fj3dK7BXjZ4/ved0h7yfjjpujq6/\ncT2RoZE8PFDzTrn+xHo7M82asuzQMr3zhxKvmdXh6aFPEzcjzm6Tt+x71oYL5QcHPsjwdsNr3I5C\nUVcoBVBH2JZ+1h5fi9lifzp0S9IWfkwo/6RnaWwuAqI6RCGEYECrAbwZ+SZPt30ak9HE1lu22tVf\nELWA+/rdR/TN0fz6t19r/B5eJi8HdwfOaO3Vmv9d9T9m9pmJi8GF2JRYIpdFVvu5JzJPMHzpcA5f\nOMyyQ8t4YfsLeln/oP5MCp9U7bZtlDYXfSTiEcaGjQXgrci3aty2QtEUqLYCEEKECiE2CSH+EkLs\nF0I8ZM1vIYRYL4SIt/4OsOYLIcR/hRBHhBB7hRADK35C0yOzMJNF+xcR+XWk7moBNHfBpbnvl/t4\nYssTdnm5RblO3S/bTruWHpFGdYgiyKTZp/u4+vDEZSVtXdH2CkCzMGnh3qKGb6RRenYxZ8Acdt22\nq4LalXe4VhHrT6wnoyCD13a8Ztf539fvPj6/9vNaOQTl4+oDaFZMQgheH/k6cTPi7E4VKxSXMjXZ\nAygG/iWl3CWE8AFihBDrgTuADVLK+UKIx4DHgHnAtUAX689lwAfW35cMi/Yv4qO9Hznkrzm2hkcG\nPwKUBGEBraN0MbhwNOMoE7/X/MCXNiE8kHpAdyBW1sdMaW7pfgtTu02tFzcMs/rOqlJ92ztWFdvn\nVDr84aJrFtl516wpRoORtVPW6ieeFYrmRrVnAFLKM1LKXdZ0FnAAaAdMBBZZqy0CbHP1icDnUmM7\n4C+EuPjaQhNic+Jmp/ljO47V01ErovT0y39oFimfxn2q59kiWa0/sZ6bV92s5w9tO7TCZ9dl539L\n91sAeGPkG5WqX3qzc9OpTVV6lpSS+3+5X/fnb+P6ztfXaudvo513O1p6tKz1dhWKpkCt7AEIIcKA\nAcAfQLCU0rZmcBawHXdsB5wqdVuiNe+SIDEr0c48c9PNJR1fXnEexZZihxCLyw4vIzErkR8SftDz\nNpzQ3BbvOleyzPJR1Ee1tpxTHeYOnssPk35gTJjjaWJnLB63GB+Ttryy9ODSSj+n2FLMvb/cq5ti\nRoZE6mVNLTylQtEUEDW1UxdCeAO/Ai9KKb8VQqRLKf1LlV+QUgYIIVYB86WUW6z5G4B5UsqdZdqb\nBcwCCA4OHrR0aeU7kKqSnZ2Nt7djNKzqMOfEHD39RugbuBpcSchP4O1zb+v5AzwHsDt3N67ClUJZ\n6KwZAPyMfmSYtcNdkT6RTA6Y7HD4qjZlrws+TP6Q/Xn7cRfuvBr6qsMMxZn8Ky+sZH3mev16ZsuZ\ndPfozqcpn3JTi5v0fY+GprF/9hWhZG8Y6lv2UaNGxUgpIy5Wr0YKQAhhAlYB66SUb1rzDgGRUsoz\n1iWeaCllNyHEAmt6Sdl65bUfEREhd+7cWV5xjYmOjiYyMrJW2uqzqA8AyyYso0dgD4f80nxz/Tcs\n2r/Iztf+omsWMWOto9186T2B0tSm7HXBisMreG6bZqc/psMY3oi0Xz6Kjo5mYc5CCswFrLh+BWD/\nWT11+VPc3O1mGiON/bOvCCV7w1DfsgshKqUAamIFJIBPgAO2zt/KSsDWk80AfiiVP91qDXQ5kFFR\n59+UsJ3S7duyr13nD9phrdIYhZEOvh3sTrDaDgzZIk/ZWDxucR1JXPdM6VISpernEz/z7u53Hers\nPb+XQxcOAZpprI09t+9ptJ2/QnEpURMroGHA7UCcEMIWJeQJYD6wTAgxEzgB2L7Jq4FxwBEgF7iz\nBs9uVPyV+hfg3EImNd/+MFSgRyBuRjfu738/EzpNoJVnK90lwLUdryU5N5kBrQbQv5XzUI1NhbJL\nPgv2LuCBASV++PMtJSecE9ITuO+X+wDo5NdJ+blXKOqJaisA61p+eaYnDg7npbbWVP9xA+sBm2vi\nPkGOyz3zBs/jxh9v1K9Lhwgs623SIAzc2fuS0YsVsiB5gZ6e9EPJoS7bcpBCoah71EngWuBk5kkC\n3Z0fvOoS0IXbe96u+363hStsbgxto5mxns05y5VLr+RIwRGn9WrDBYNCoagcSgFUgSJzkV0kqSJz\nEf/Z/h9WHV1VboxZgzAwd/Bc1k5Zy9opa/nj1j/qS9wGZ86AEsuorMIsVhxeQdSKKDtnch4uHnp6\nxXVq9K9onmTkFtWK5+CqohRAJTmYdpCHNj3E8KWac6/84nwGLh7I14e+psBc4NQTZ2lcDC5Vdl3c\n1JnVdxZxM+II9gxmX+o+3SrIRme/zrx7VcnmcNeArvUtokLR4Gw6mEy/53+m4+OrCXtMc1CYnJlP\nXmH5p/9rC6UALoLZYubn4z9z04836QeURi8brW/8Ki7OudxzTvN9XH3sls3qw5WFQtHYePxbe1Pv\nmZ/tYMhLG7jtk7pfLVDxAC5C2aDqAMl5ybrN/puRb7Jw70Ju73l7fYvWZOgd2Jt9qfsc8s/nnaez\nf2dAiyesUDQHCostLN5+gudX2Q8i77myEwt+O8qGg5qhyN8Gh9a5LEoBVIE5A+aw//x+Np7aCGgj\n2KvbX01Uh6iL3Nm8ee/q9xj59Uj9eudtO4lYHMH14dcjhGDFdSsI8mwcp3wVirrk0Nksxr79m0P+\nxn+NJLSFJwt+0wIw/X14R26OUAqgQSkdjeuZoc9wY1fNnPPXU7+y6K9FLIhaoJYtKkGAW4CeHtpm\nKG5GN95u/zZX9b0KgG4tujWUaApFvZGRW8TNC7bp1/dFdmZS/3a08nEjwEszIjk+f3y9yqQUQAVs\nPa0FW5kzYI7e+QOMDB3JyNCR5d2mKENpJfnOVe8A2olopTwV1eH73Uk8/PUetswbRVs/D7YfTeWf\ny2I5m6kN2N6Z2p/h4S15dMVepg1pz9U9gy/SYv0w95tYMvKKWPnAMPqG+F/8hnpAKYAKSMpOAmBy\n+OQGlqTp89W4r3AxuNiZfSoUVSUrv4iHv9YcDwx/xbmr8YeW7tHTGw8mOx1Vx5/LolOQN0ZD3Q9C\npJRsP1PMuv2aMURj6fxBKYByiU2J5dUdrwKo9elawNkpaYWiIvKLzDz34188Ma47Pu7aAcE7/29H\nhfcsnnmZg/VMv+d+JubfV5OUnkeHQC+Gzd9IUnqeXr501uVc3imwRrLuOZXOl9tPcCItlz+PpfHZ\nnYMZ2TWIf3y9h+/3nNbrPXhVeI2eU9soBeCE09mnuW31bYAWiEShUNQ/o16P5kxGPkv+PEm3YB+G\nBRWx80QOAH88MZpfD6UQ2sKToZ3tO+/j88fzY+xpDp/L4n8bj5CRV0T4k2vKfc7Uj7Y7nSUkZ+Yz\n5KUNPD2hJ3cN7+j03g0HzlFQbOH+L+3DpN5RRlENaGVk4axRtPRuXNHnmu05ACkluZZc1h1fx80/\n3qxH4gKIORcDQERwBC8Of7GhRFQomi3zVuzlTEaJEcahc1l8uk+LoTF9aAeCfd25eXCoQ+dv47p+\nbflnVFf6tPNzWm5b+WnjpzliDHvsJwqKSw5eHUnOZshLWnCm51f9xak0x4BEd322g5mLdtp1/veM\n7MSdw8Ls6u17biwPDXRvdJ0/NKMZwIHUA6w9vpaHBz6MEIJ/Rv+TX079oscoG7ZkGL/f8jveJm89\nHOFrI19rQIkViuZBsdnCv5bHkpZTSH6Rmev6teXrndoXc93DVzqYTT44ukul2hVC8OOc4frp2ifG\ndeel1Qf5Z1RXvY3D57IY85bWfrd/r+XVG/vi627i3sUxdm29t+kIgd6urNt/jjdu6gdo+wsAUweH\nsnTHKWYO78jj12ru4AWCEV1bMqpbq+p8JPVGs1EAtvi6CekJzOwzk19O/uJQZ9iSYUzoNEH37tmQ\nYRgViupwMjWXQrOZ8FY+DS1KhRSbLXyx/QRv/xJPRl6RXdmO45qvqO2Pj6a1nzu7n4qiyGLhi9Vb\n+Pv1I/HzqJrDwE9mRGC2SMb0as2sKzvblXUN9uHA89fQ4+m1AMxdsVcv+/f4Hvx9RCcGv/gLS3eU\nRLOd+N7vevrGQSHMn9KXf0R1pZVPyQj/6et6VknGhqLZKAAbvyb+yq+Jv5ZbvuroKkBb+y8bhlGh\naKz8vP8ss74oGbU+NLoLD1/dpdGZ2n694yTzvnGMctfCy5W0nJIwqVMGhtDaujxjs5EfFOxS5c4f\nYHSPis1APVyNXN6pBduPpul5d1wRxt9HdAIgPMiblKwCAP4WEarPTh4d242bIkIACPZ1r7JcjYFm\noQCKLcVO8//X4X+canWKgcED6dmiJ30/7wvAt9d/S5eAyk0zFYq6ZtXe03y7K4mnJ/QkrKWXni+l\nJCElm/wii13nD/DOhnje2RBf7weLyuNIchb/Wr6X2FPpdvmdgryYO7YbY3u11pWVxSKpb721dNZQ\ncgqKyS8yE+DpiqGUeeiXf7+MJTtO0jHQiyvCW/LPMV3xdnPBy63pd59N/w0qQXqB/T/d3MFzGdNh\nDAd2HLDz4VNe/F2FoqF4ZHksK2ISAW3NeebwjozsGsR7m47wx7E0u7pPTejJzREhbI4/r29MXvP2\nb5xIzeWdqf0Z06t1rcuXnJnPDR9sRUptOaR9C0/G9m6N2Szx8zRRWGzBIiVRb/2Gzdvxjw8Mp41/\n+ZuihnqwzXeGVzmdusEguPWyEl9V9TLaP70bDCZo3btOH9MsFMCoZaMAuLXHrTw25DE9/wAHGkok\nheKirIk7o3f+Nj7ZcoxPthxzqHtfZGdmWk0Vx/Vpw+oHRzDuv5s5eDYLgFlfxBDRIYD+vkVEVkMW\nKaU+QpdS8szK/Xy+7YRdnXc2xAPwr+WxTtvoH+rPwukRBPk0PmuYBuX477DvG9j5iX1+59Fw+7d1\n+uhLXgGUDkY+sfPEBpREoag8Dy7ZzcpY7QDR0lmX06O1Ly+vOaBvRl7Xry1dW3lz1/COZOUX6+vl\nNnq29eWdqf3tTsXuPHGBncCSp9ey9uErCW1Rueh0vx1OYfqnf5ZbHtrCg6mD2/PJlmN26/il8XI1\n8s7U/s2v8y/MhfSTmAozYe3jYDBC0m44GwcubuATrKXL4hkIk96vc/EuaQWQU5TDgr1a7NllE5bR\nI7BHA0ukUFycFTGJeue/as5weltt2edP6cvj1/ag2GIhsNTySXlr0RP7t2NIxxb4uJu494sYzmbm\ncyQ5m5xCMyNe1dwo9Av1JzTAg+cn9ibiP+uxSOjSypt7RnZmysB2/PzXOe4ps78AMLp7K269vD3h\nQT6EtvBACMHsUeHsTUznz2Np3D60A24uxtr+aBofOalQkAluPmAuhJwU2PwG/PWDXbVhzu4tQOvo\nB1njgA+5G4J7QcJGaDcI3J2fYahNLkkFYJEWJn4/kcQsbfrc0a+j6vwVDcbp9DxcXQy09HYjt7CY\nZ37YT5dgb95aH89dw8OYc1UXXI0Gvt2dxIJfE4hPzgbgzydG06rMerOfZ9WsYNr4ab6XFv/9MgAe\nWvgzPySUmF3Gnkon9lQ6q/aWRLSLT87mkeWxPFJqKefFyb3pF+LP/DUHefq6noQHeTtdq+8b4t+o\nfN04pSALjv2mddjL79Dyhj4Ag+6A8/HQ9Rq4cAzWPQlH1kNgF7jjJ23EXpgD3q1g/7ew4q6LP8un\nLfSaxJGUPML7DNHa8gvROn6DUfspS+eravNtK+SSVADxF+I5nnkc0MIOfj/p+4YVSHHJkVtYzK+H\nUmjr70FYoBc+7i6YpcQohF3HuG7/WacjaBvvbUrgvU0JDvnfzx7m0PnXBhM6m/j7tZcR1tKTwS/+\nwqAOAWTnFxObqMW6/mdUV8b3bcOUD7aSnqspii9mDmFEF80flk2R1Au5aWA0gdENXJzH3AZASkg9\nonXMZUfNtp1nm1mRxQyfjIXk/fb1tr2r/Tgj5QC81sl52YDbIPQyOLgaTm6DHtdByGDwDoaQCK2j\nF4LE6GjC+0de9JXrm0tSAXi6eOpRqN4a9VZDi6Noouw/nYG7yUhmXhHpeUVcyCnk9yOpfLMrB9au\ns6vr6Wokt1QMV3eTgfwii9N22/l7kJSeR7dgHw6d0zZpjQbB8PCWvH5TvzpdJzcZBH1CtE7y4AvX\n6vnbElLp2cZXn2H88cRoMnKL6kQJ6WQkwbn94OoJh9dBagKc3AoeLSDNUSlGAhzoDaOeAJMn+LfX\nOv3f34Hfypza7z1F21gtTVB3SDlYcj3+DWjZVXvemrlw4nf7+tfMh+4TYOUDcDRaywsM15RNYDhM\nfB/aWxXiwOk1+CAajktSAYT6hrJkwpKGFkPRyDBbJKfScmnfwhODQXAuM59ii6Sdv4edlcv3u5N4\nde1BTpfyReOMlt5unM8uwMfNhXYBHpxKy6V7G19iTlzQO38fNxe+uvtyUrLzycov5prerR3WxnMK\nivF0bdj4CGV96ri5GGnle5E1/OICMBdB/Droeq3Wkdvyz8drne3G/2jXXceAVxBkJEJSjLY5mmlv\n4YQwgjRDnnYSmIEzIPscnNgGJnctfW4fLJ1WvkweAdr9ZTt/KOn8RzwCQ2eDZ6mT/neu1n5bzCAM\n2B1EmG6/no+5WFu6aWSH7KrDJakAFFWkuBCkRfuSgfYlcLY22UQ5n13A2Yx83vj5EJsOpVRYN9jX\njXOZBfr1TYNC+ONYGqN7tOK2yzUnZDu2bmbUqFEVtiOl5K8zmfRs42vt2Mvf0GsUB4qkhIOrtBF5\nwiZtndo7WOukr3lFWwv3CoKiPK1z//0dKMqpfPsxn2m/DSbw8IeOI8HNG4J7g9EVOo8CP2sIxKRd\n4NsGfNvaNfHbhp+5cvNN0HcqBHXVFIO5AFr1hIiZWl7p97F10AdXw7onYOK70LpPxZurlfm/NzaC\nv1ctcem8SXOguBAMLiAtuBakwuk92pfGq4xHxPxMyDildeouHtrIrDBH2/xqN1CrIyUUZCFTDiI+\n0WIaF7UfTt7pA/gWp1LgH45bqy5w1ZPal0ZKrb3sZPJSjrE7O4Bsoz/dWvvQPtCrXkevUkqOns/h\ndHoeG/afxi0/BfeMY7gWpOKde4oMiwdHs038ZohgRIiRhBOnCBYXaCPSeciYzgHZng2WgXi6uZFV\nUIyPuwtZ+doo/FxmAdf0as0Lk3oT4GnCxVjKHUhuGqSfxDvnhNYJtugMBufuQoQQ9Gpr7Wiyk7Ul\nCzdv7dpiXSoqLgAXd/s2Tu+Gv1ZC+glIP6k9M+c8FGRoo9vALhA2DPIzIC8dDq2B8NHaqLUgU+ug\nja7Qtr/W2QZ2hvZDtfycFHwzDsPmXdr/jbkQLEVwcjvELgVkiRwlrm8cLFrs6Ps3TT7ftnB8i7Z5\nCjDmRbhwXFsaCegAJi/tWaZKBAQKGeQ022J0hWczSjJGVNBG6f/H7uO0H4UDl6YCKMqDtGNahweQ\nmwqF2dqXKeOU9gV0caVDUjL8cVibChpctA0nn9ZaZ2kbFWPt+KTUpqdpR+H8Ye274hWofZG8W0Hm\nGTgXB9kp4O4Lbr6Qn659+QPDtX/I3DTtCy+ENtKIekGzLDB5avIV5mgdS+Kfmjw557Vp64UT2hc+\nJ0WX6QoAW3hRgwtYiqFdhPbM1ATsvsylkEY37UtYmIOwFFG62zad3MJBSxj7LX24Im0/7dPXwOE1\nWuciS9azPUB7vpUDlvZ0EmdwE0VcwId8gxdtLGe1Qp82MOkD6HCF9q6VREpJ4rHDeJ7biSzIJvlI\nDKOExWEAABAJSURBVFuzW3Mq00I7zuFTmEJrkcazRueHjrDtGZ4FKnps/wna+2Wf02Rt1RPSf4KN\nBm0pIeOUtlxRmA1ZmqXMYICdaPcFdNRGyuZC7bMvyofQwdooMzsFjv2q3at/yJ5QVMa1sDBoyiQ/\nA3KSrfJ7a/K06af9v2Sdg9R4rXzLWyX3SYs2cvdvD16twNVLa2fr/5y+7sAKPgq6XgsjH4U2/bWl\nGmnROv/CbO1ZRXng205TLi06gWfLchWgUy6hkfOlgpDSeUdRZw8U4hrgHcAIfCylnF9e3YiICLlz\n586qPyRxJ3w8uhwBDNqo2FKsTR+rg9FN293PSdFGNTY8A7UvSF669iUXQqvj6q11/K5e2nMzk8q0\n56p1IM6eExgOgZ3A3R+8WgICTB7EHz9FWOcumDDDsc0gzcjiQsweLcgL6E4C7TiTWUR6ehqpmTkk\nX8ikkziDRCCQ5OFGmvShpYcgxzuM/57thZ+HifsiO+NhMvLMyn1cbjjAYy5f0Uqk01ZobgfiLGGc\nNITi1SqMXhc2YinMIUN60dWgvVOqIRA3Sz7eVLQ8IABJcUBn8n3D8Oh3Iyd3rcWSdowW+ac4WRyA\nHzmEGc6V20K+iw8Go4kivzCKw8fi3b4fJzIlrdu2x9PLm4JdSykqKsI7KFQbOfuGgGeAtmb950ew\n42P7BtsOgLP7tL+nMGgbg0ZXaBluHRy4atYdJg9OHNhFh5A22gj7/GFtpO7hDxaL1vnmpmqDD792\n2ibjgZUlzwkZAnlp2oi5w3Bt4zEnRbuv/VDt6H94VMUuALJTtAGEZwtN4RhNjksXRfmQdVobDGSd\n0T7z/AwOnjhL94iRmoJy9dJ+u/tr6Ua+ph0dHU1kZGRDi1Et6lt2IUSMlDLiovXqUwEIIYzAYSAK\nSAR2ALdIKf9yVr/aCiAvHRI2aF9ao5v2z12YrY2yAjvr/+i/btzAyEHdtJG3uUjrhDNPa/VdvbV6\nQgBCmwEYDNqoxy8EhKCgsJDc86cgN5X0Ajhh7EByViHnMvM5n11AUno+fh4mWvu5EeDpir+nNizN\nzM6m0+mf8CcLLxP4kIPRqwUFhQXEizCy3Npy1hDM6RwoxkByZgG5hWYu5Gpte7u5aAEqhKBjSy8s\nFkl6XhHpuYVYyvw5W3q7EeTjRmiABxsOJhPk7YbRIBjUIYAbBrZjZNcghBB2m6AAaTmFvLz6AN/t\nTqLY2uj0oR2Y2L8tA9sHOC75WMyYMWAQUFBsod9TK+kmTrHS7akq/elycMcsTBwzdiQ/dASn/Qfh\nZSgkPLQtnYIDtBG0T+uS5ZSakp2sdYAurtrfuDhf69grGK2qjqhhULJXnsoqgPqekw0BjkgpjwII\nIZYCEwGnCqC65Bq9SfC/mpzCYnILi8nJMJOVX0z66UIycg+SmV8MSBKTill2Npm8QjM5BcUUFFtw\nNQbiZjLgYRIYhEAisUhJbmEx2QVmzmfFk190kIJiC9kFZb2MlmwwepiMeLgaycgrwly2VwagewVv\nUAQk4uPugslowNVoINDblSAfN3q39eNCbiHuMp8WAQH4eZgwGAT+HiYCPF3xcXfBIAT9Qv3p2dYX\n70puMJbt0Ft4ufLaTf14zRr84qIYjNjGoO4mI4fmT+aNnw8RtrEzk/q3xWgpZFdSLoPCWuDmYuDA\n4cMMDvXExz+Ironf4NquDz2vGE+rAG3dvJJPrTnepQJ2CFG5NWqF4hKhvhVAO+y3lxKBWj9Zcuhs\nFpPf3+q0zNVowNfDBSEE5iIz/oWZeLoa8XR1wcfdhWKzJDOviHOZmgmgQCCEZqnh72GiU0svPF2N\nuLkY8fc04e3mgkVKgnzcaOfvQbCvO6183XRTP4tFcj6nADcXI+m5hRQWW2jp7aZtCfx/e+ceY0V1\nx/HPF4RFQJCIII2KVYFStRXX+GhVoBbUaHy01voIamNrYouvYmNsfdBgjImpjYhPWqtifBBrW1Mf\nKIoYNVLxHf2jrdWmPiuoFRAQl2//OGflgrvsLuzemfH+PsnNvffMzN3PnZ2Z3zm/c+6cT1tYuvxT\nlqxYzccr17BidQsHjhpKvz69GdCUnNoj1Sj26+5d161MmzyGaZPHtLnssceW1tSIOqyoBEHQA9Q7\nBXQscKjtH+f3U4B9bU+tWed04HSA4cOHN995551d/jsr1pi/f9hCU2/Rrzc0bZGeB/YVfXutq+0u\nX76cgQO7KZVQZ6rsDtX2D/diCPfOM3HixE6lgLBdtwewPzCv5v0FwAXtrd/c3OyeZMGCBT36+T1J\nld3tavuHezGEe+cBFrsT1+R6z3n4DDBK0lcl9QWOB+7tYJsgCIKgB6hrH4DtzyRNBeaRhoHeZPuV\nDjYLgiAIeoC6/zLD9v3A/fX+u0EQBMH61DsFFARBEJSECABBEAQNSgSAIAiCBqXu9wLqCpLeB/7d\ng39iKLCkBz+/J6myO1TbP9yLIdw7z0jb23a0UqkDQE8jabE782OJElJld6i2f7gXQ7h3P5ECCoIg\naFAiAARBEDQojR4AbixaYDOosjtU2z/ciyHcu5mG7gMIgiBoZBq9BRAEQdCwRAAIgiBoUL70AUDS\n0Pxc7glP20DSXpK2Kdpjc6jifgeQVNlzI0+9WkkkbZefK3fcSPq2pF2K9ugKlT3IO0LSOEn3A+cC\nuEKdHdl9PrCIAm7YtzlI2l/STEmnQuX2+z6SzgKwvbZon64iaW9Jc4CLq3Yhysf8I8AMqNxxs5ek\nh4BHgcFF+3SFL10AkNRL0i3AH4Dbbf+qaKfOIqlJ0vXAbOBa4HHg8Lys9DWiPOPbLNK8DwdLulTS\n7gVrdQpJ5wB/Ai6UdFguq0RNOh/zs4AbgEeAEcB0Sf2LNesYJX4L3ArcYvsnRTt1Fkl9JN1AGuEz\nk3Sb+wl5WSWurZWqXXYG22slDQFetX0bgKRtgSUVqFWMAJ4FzrG9StIoYBtJqoA7wG7APbbnSHoY\nmAO0SHrT9kcFu3XEP4EjgJ1JM9U9YLulCvs+H/OPAhfa/kjSE8DFwGcFq3WIbUsaCDxv+1aA3Hp5\nvQKtsCZgIel8XZnTtQdI2sJ26fc9fElaAJKOk/RzSQfkolOAyZJ+IWkBKTrfmANBqcju50nax/Yb\ntmfbXpUXDwR2yCdJ6WqjNft9/1z0AdBP0mDb7wLvASNJU4GWCkn7SRpdU3Qf8FJ+Xt6aCiJNXFQ6\nNvS3fU+++E8CFpMqE5dJGluYZDu0se+nAftKukjSk8AVwM2SmosxbJ8N3FfYvt32yvx+C6AlT3xV\niWtrJSTbQ1JvSRcD5+ei6yQdZ/tD4CpS/n86MBXYCjhJUilaPRu4rwV+L+l7eVnr/+XPwJGS+ttu\nKUj1C7Sx32dLOgT4GzAM+J2kuaSL5zJgeN6u8DSWpK0l3Qc8DBwnaUDrItstOfj+BjhN0tCy1eTa\n86/Ztx8CJ9qeBKwATpE0vBjb9WnP3fbHwDXAsaTW1wnAO8D3y1Jpa8s9V8xUc74uBI6RNKQCrReg\n4gEgXxTHANNsXwlcAvxM0mjbM4Cv215oeylwB3B0WU7odtynShpbc/C8T+pY+lpBmm3Shvt0Ui1u\nGekEvht40PYJpI7sw/J2ZUilDCDlas/Mrw+CL3T6PgY8nddB0j71Vdwo7fk7Py/Os+4BPACMAz4p\nwLMt2nQHsD0TmGD7cdurSZWfvSm5e56DfW0OAm/kdcYXJdlVKhcAJJ0sabykrXPRe8CQnHe7B3gZ\nOFFSrw3yzrsAi4pMpXTC/VXghzWOy4FdAeftC6tBd+B+N/AP4HjbH9i+y/ZNeb0xpJO5MGrcB9l+\ni9RpNxdYRUo9fCWvJ/g8wF0KnC/pf8BeJdn3G/Vvg2ZSTbqwSk9X3HPLvZVm4E2gsJZvV46bXIFo\nypuuai0vwrsrVCIA5GbWiJzPPwU4Cbgmdx4tAfYg5csBrgaOYV3a4WBJi4DvALPrnUrZRPdhALY/\nAJZm97rXoLvoPhM4StKIvO3Bkl4h1UCfqKf3Rtyvy2mdVbY/AeYDQ6jZv0ojanYFbgeeBA6wfX1J\n9v1G/fN2gyRNkvQMcChwWU2OuuzuTZImSFoMHAJcXtMfVlr31j462ytI19T9Wsvr6b5J2C71A+id\nn0cDt7WWAdcBNwFbAw+SmmT98/K7gKn59ZHAMRVzP6vmMwZVzP3s/HqXEu73q0mjlGrXPZdU2x9c\n8z2GAROLcN9M/3657LvAURVz3zKXfYuUqq2Se/+a8r5FHTeb8ihFh2hb5DTIDKC30g+6BpGbg07D\n86aSmre/IdXWjieNfLiL1OR9Jq97bwXdF7V+llMHWZXcn87rvga8VjL3s4G3JY23vTBvNpt0Ij8M\njJTUbPtN4L/1dO8G//nAjpLG2Z5fYfenKubeetyMs/227U/r7b85lDIFJGk8aTz8ENL47BnAGmCi\ncoecUyrn18AVTuOHHwJOlvQ8aTjWy+Ee7hu4ryV1WE+v2fRw4KfAi8Ae+eJfd7rB/wWS/9v1s040\nuHvrcVN3926h6CZIO02xA4EpNe+vBc4ATgWezWW9gO1II052yGXbATuHe7h34D4X2CmXHQUcVKR7\n1f3DvbqPUrYASBF5rtaNhnkS2NH2zaRm2plOUXl7YI3t/wDYftf2vwoxXke4F0NX3FtsvwFg+y+2\nHy9CeAOq7B/uFaWUAcD2J7ZXe92InUmkMfEAPwLGSvoraWz/c0U4tke4F8OmuEvlGaZXZf9wry6l\n7QSGzztnTBrS2dqZuwz4JbA76X4hbxWkt1HCvRi64u7cli8TVfYP9+pRyhZADWuBPqQx59/Ikfgi\nYK3tJ8p6EcqEezFU2R2q7R/uVaPoToiOHqQfVawl/ZjotKJ9wr38jyq7V90/3Kv1KP2k8JK2B6YA\nVzrdI6QyhHsxVNkdqu0f7tWi9AEgCIIg6BnK3gcQBEEQ9BARAIIgCBqUCABBEAQNSgSAIAiCBiUC\nQBAEQYMSASAIapDUIukFSa9IelHSNHUwwbeknSSdWC/HIOguIgAEwfqstL2n7d1I94U5jDRf88bY\nCYgAEFSO+B1AENQgabntgTXvdyZNLjQUGAnMIU0KDmnWuackPQ2MBV4HbiFNj3k5MIE0T+w1tm+o\n25cIgk4SASAIatgwAOSyj0iT2y8j3RtmlaRRwB2295Y0ATjP9hF5/dOBYbYvldREusXwD2y/Xtcv\nEwQdUOq7gQZByegDzJK0J2nKwNHtrDeZdEOxY/P7wcAoUgshCEpDBIAg2Ag5BdRCmiP4EuA94Juk\n/rNV7W0GnGl7Xl0kg2ATiU7gIGgHSdsC1wOznHKlg4F3nGaImgK0ziK1DNiqZtN5wBmS+uTPGS1p\nAEFQMqIFEATrs6WkF0jpns9Inb5X5mXXAn+UdDLwILAil78EtEh6EbgZuIo0Mui5PHvU+8DR9foC\nQdBZohM4CIKgQYkUUBAEQYMSASAIgqBBiQAQBEHQoEQACIIgaFAiAARBEDQoEQCCIAgalAgAQRAE\nDUoEgCAIggbl/1KpkTZF7MSJAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10b446550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "valid_stocks.plot(grid=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "AAPL    float64\n",
       "MSFT    float64\n",
       "GOOG    float64\n",
       "dtype: object"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10cf29240>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "valid_stocks.plot(grid=True)\n",
    "valid_stocks.dtypes"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "如果我们想要画出月K线呢？"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x10cf658d0>"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10d401978>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "monthly_stocks = valid_stocks.resample(\"M\").last()\n",
    "monthly_stocks.plot()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
